在外部开发时,我不能使用Rally.environment.getContext()。我需要这个来获得ProjectOID和UserOID在应用程序启动之前,所以我不能去app.getContext(),因为它还没有创建。
如何在外部开发时从Rally对象获取UserOID和ProjectOID。
我使用sdk2.0,我不想使用hangman变量,因为网站上说它们是不推荐的。
编辑:下面是每个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'
}];
},编辑2:这似乎暂时适用于外部运行(App):https://github.com/ssteffl/rally-app-builder/blob/master/templates/ext/App-debug.html。
但是,我想让它工作的主要原因是,PROJECT_OID和Rally.environment在没有运行自定义应用程序Iframe时都是无效的,所以我的茉莉测试失败了。我想让我的考试通过。我使用这个jasmine.tmpl进行测试,也许我必须手动添加Rally.environment,就像我对App模板:https://github.com/arring/MDO-RallyApps/blob/master/test/jasmine.tmpl所做的那样。
发布于 2015-04-07 02:06:26
似乎您找到了一个非常可靠的边缘情况,我们在SDK中没有考虑到用户+项目的prefs范围。我想我可能会继续使用hangman变量,因为唯一的解决方法就是这么多代码。它们被认为是不受欢迎的,但它们不会很快消失,因为目录中仍然有大量基于SDK1.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;https://stackoverflow.com/questions/29402614
复制相似问题