Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rally API 2.0车型vs车型_Javascript_Rally - Fatal编程技术网

Javascript Rally API 2.0车型vs车型

Javascript Rally API 2.0车型vs车型,javascript,rally,Javascript,Rally,我已经创建了一个自定义看板。在董事会内部,我在卡片上有一个按钮,当某人要对某个项目进行代码审查时,可以申请。点击按钮后,我想去检查实时数据,以确保在屏幕加载后没有其他人声明 如果这是一个故事,我就有所有的工作,但如果这是一个缺陷,我就有一个问题。所以在查看代码时,我注意到我做了一个Rally.data.ModelFactory.getModel然后是model.load 所以我认为应该将其更改为.getModels,并更改类型以合并故事和缺陷。然而,当我这样做的时候,我如何将其正确地输入到搜索中

我已经创建了一个自定义看板。在董事会内部,我在卡片上有一个按钮,当某人要对某个项目进行代码审查时,可以申请。点击按钮后,我想去检查实时数据,以确保在屏幕加载后没有其他人声明

如果这是一个故事,我就有所有的工作,但如果这是一个缺陷,我就有一个问题。所以在查看代码时,我注意到我做了一个
Rally.data.ModelFactory.getModel
然后是
model.load

所以我认为应该将其更改为
.getModels
,并更改类型以合并故事和缺陷。然而,当我这样做的时候,我如何将其正确地输入到搜索中。我被困在如何加载和检查它

代码片段是:

if (this.getRecord().get("StoryStatus") == "Review Ready") {
                    if (this.getRecord().get("CodeReviewedBy") == '') {
                        content.add([{ xtype: 'button',
                            text: 'I will review',
                            scale: 'small',
                            listeners: {
                                click: function (btn, e, eOpts) {
                                    // Verify nobody has claimed it yet !
                                    var mod = Rally.data.ModelFactory.getModels({
                                        types: ['HierarchicalRequirement', 'Defect'],
                                        success: function (models) {
                                            var model;
                                            debugger;
                                            if (models.Defect) model = models.Defect
                                            else model = models.HierarchicalRequirement;

                                            model.load(eOpts.scope.record.internalId, {
                                                fetch: ['CodeReviewedBy'],
                                                success: function (currentRecord) {
                                                    var currentCRB = currentRecord.get("CodeReviewedBy");
                                                    if (currentCRB) {
                                                        window.alert('While you were sitting around doing nothing, ' + currentCRB + ' already started reviewing this code');
                                                    } else {
                                                        var con = Rally.environment.getContext();
                                                        currentRecord.set("CodeReviewedBy", con.context.user._refObjectName);
                                                        currentRecord.save();
                                                        location.reload(true);
                                                        //eOpts.scope.refresh();
                                                    }

                                                }
                                            });
                                        }
                                    });
                                    this.refresh()
                                },
                                scope: this
                            }
                        }]);
                    } else {
                        content.add([{ xtype: 'label',
                            html: '<b>Being reviewed by: </b>' + this.getRecord().get("CodeReviewedBy") + '<br>'
                        }]);
                    }
                }
if(this.getRecord().get(“StoryStatus”)=“Review Ready”){
if(this.getRecord().get(“CodeReviewDBY”)=''){
content.add([{xtype:'button',
课文:“我会复习”,
规模:“小”,
听众:{
点击:功能(btn、e、eOpts){
//确认还没有人认领!
var mod=Rally.data.ModelFactory.getModels({
类型:['HierarchycalRequirement','Defect'],
成功:功能(模型){
var模型;
调试器;
if(models.Defect)model=models.Defect
else model=models.hierarchycalrequirement;
model.load(eOpts.scope.record.internalId{
获取:['CodeReviewDBY'],
成功:函数(currentRecord){
var currentCRB=currentRecord.get(“CodeReviewDBY”);
如果(当前CRB){
alert('当您无所事事时,+currentCRB+'已经开始检查此代码');
}否则{
var con=Rally.environment.getContext();
currentRecord.set(“CodeReviewBy”,con.context.user.\u REOBJECTNAME);
currentRecord.save();
位置。重新加载(true);
//eOpts.scope.refresh();
}
}
});
}
});
这个。刷新()
},
范围:本
}
}]);
}否则{
add([{xtype:'label',
html:“正在审阅者:”+this.getRecord().get(“CodeReviewDBY”)+“
” }]); } }
一旦您有了记录,您就可以实际使用self属性来获取模型-这将节省您再次使用ModelFactory.getModels的时间

var model = this.getRecord().self;
model.load(this.getRecord().get('ObjectID'), {
    //fetch, success, etc...
});

我知道这不是最好的代码,但希望它仍然可以被遵循。我在调试器语句周围遇到了问题,似乎我必须得到模型,它返回所有的故事和缺陷??只是没有点击,没有意义。基本上是为了查找故事/缺陷的数据库实时中的CodeReviewer字段是否仍然为空。看来我把事情弄得太复杂了:)谢谢凯尔,这就成功了。实际上,我对它做了一些修改,以获取类型并在getodels.types中使用它,这样它只加载所需的模型。谢谢你的提示!