首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rally外部开发Rally.environment未定义

Rally外部开发Rally.environment未定义
EN

Stack Overflow用户
提问于 2015-04-01 23:28:57
回答 1查看 89关注 0票数 1

在外部开发时,我不能使用Rally.environment.getContext()。我需要这个来获得ProjectOID和UserOID在应用程序启动之前,所以我不能去app.getContext(),因为它还没有创建。

如何在外部开发时从Rally对象获取UserOID和ProjectOID。

我使用sdk2.0,我不想使用hangman变量,因为网站上说它们是不推荐的。

编辑:下面是每个Project+User组合的设置示例,它不能在本地工作,并且Rally.environment没有设置,因此我无法从那里获得。

代码语言:javascript
复制
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所做的那样。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-07 02:06:26

似乎您找到了一个非常可靠的边缘情况,我们在SDK中没有考虑到用户+项目的prefs范围。我想我可能会继续使用hangman变量,因为唯一的解决方法就是这么多代码。它们被认为是不受欢迎的,但它们不会很快消失,因为目录中仍然有大量基于SDK1.x的应用程序仍然需要它们正常工作。我可能会用一些默认值做一些理智的检查:

代码语言:javascript
复制
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;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29402614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档