2015-04-01 6 views
1

Я не могу использовать Rally.environment.getContext(), когда я развиваюсь извне. Мне нужно это, чтобы получить ProjectOID и UserOID до запуска приложения, поэтому я не могу перейти app.getContext(), так как он еще не создан.Ралли SDK внешнее развитие Rally.environment undefined

Как получить UserOID и ProjectOID из объекта Rally при разработке извне.

Я использую sdk2.0, и я не хочу использовать переменные палача, потому что веб-сайт говорит, что они устарели.

EDIT: ниже приведен пример настройки для каждой комбинации Project + User, которая не работает локально, а среда Rally.environment не установлена, поэтому я не могу получить, если оттуда.

var SETTINGS_TOKEN = __PROJECT_OID__ + '-' + __USER_OID__; 
... 
config: { 
     defaultSettings: (function(){ 
      var s = {}; 
      s['QueryFilter' + SETTINGS_TOKEN] = ''; 
      return s; 
     }()) 
    },    
    getSettingsFields: function() { 
     return [{ 
      name: 'QueryFilter' + SETTINGS_TOKEN, 
      xtype: 'textfield', 
      label: 'Query Filter' 
     }]; 
    }, 

EDIT 2: Это похоже на работу временно для запуска внешних (App-Debug Tmpl): https://github.com/ssteffl/rally-app-builder/blob/master/templates/ext/App-debug.html.

Но главная причина, почему я хотел получить эту работу, что PROJECT_OID и Rally.environment является недействительными, если не работает в пределах пользовательского приложения Iframe, так что мои тесты жасмина неудачи. Я бы хотел, чтобы мои тесты прошли. Я использую этот jasmine.tmpl для своих тестов, и, возможно, мне нужно добавить Rally.environment вручную, как я сделал для шаблона App-Debug: https://github.com/arring/MDO-RallyApps/blob/master/test/jasmine.tmpl

+0

Можете ли вы опубликовать примерный код того, что вы пытаетесь сделать перед запуском? –

+0

У меня есть настройки проекта и пользователя, и я использовал переменные hangman для получения OID пользователя и проекта, но это не работает извне. Если это не поможет, я отправлю код – spsteffl

+0

. Думаю, это поможет, если вы сможете опубликовать свой код. Я думаю, что могу представить, что вы делаете, и я уверен, что мы можем заставить его работать ... –

ответ

1

Похоже, вы нашли довольно прочный кромку с краем, t учитывается в префиксах SDK для пользователя + проекта. Наверное, я бы, вероятно, просто продолжал использовать переменные палача, так как единственным обходным решением является столько кода. Они считаются устаревшими, но вскоре они не уйдут, так как в каталоге все еще есть тонна приложений с поддержкой SDK 1.x, которые по-прежнему требуют от них правильной работы. Я бы, наверное, просто немного проверил проверку работоспособности с некоторыми значениями по умолчанию:

var projectOid = '__PROJECT_OID__'; 
var userOid = '__USER_OID__'; 
if(projectOid === '__PROJECT' + '_OID__') { 
    projectOid = 123456; //well known default for testing 
    userOid = 234567; //well known default for testing 
} 
var SETTINGS_TOKEN = projectOid + '-' + userOid; 
+0

хорошая идея. Благодарю. – spsteffl