我想达到什么目的?
我正在尝试更新由 Clayton Lengel-Zigich 制作的一个不错的 jenkins 散热器应用程序。它是一个backbone.js 应用程序,它使用它的jsonp api 获取jenkins 主服务器的状态并显示作业状态。我想更改此应用程序以从多个主服务器获取并显示许多作业的状态。
我尝试了什么?
我试图更新同步函数来执行两个 jsonp 请求,然后合并结果。原始文件可以在这里找到:https ://github.com/clayton/jenkins-radiator/blob/master/src/radiator.js
sync: function(method, model, options) {
var paramsA = _.extend({
type: 'GET',
dataType: 'jsonp',
processData: true,
url: "http://serverA:8080/api/json?jsonp=?"
}, options);
var a = $.ajax(paramsA);
var paramsB = _.extend({
type: 'GET',
dataType: 'jsonp',
processData: true,
url: "http://serverB:8080/api/json?jsonp=?"
}, options);
var b = $.ajax(paramsB);
function MergeJobs(o, ob) {
for (var z in ob.jobs) {
o.jobs.push(ob.jobs[z]);
}
return o;
}
var joinedJson = []
a.done(function(jsonA) {
joinedJson = jsonA;
});
b.done(function(jsonB) {
MergeJobs(joinedJson, jsonB);
//joinedJson = jsonB;
})
return joinedJson;
},
我得到了什么
我希望我能够在网页中看到合并的结果,但是我只看到其中一台服务器的结果。显示哪个服务器是随机的,向我表明我的合并是覆盖,而不是合并。
我一点也不知道 javascript,所以我处于我什至不知道下一步该往哪里看的阶段。也许 _.extend 部分实际上更新了模型?如果是这样,有没有办法实现我想要的另一种方式?