我是Backbone的新手,但我已经成功地在我的一个模型上定义了这样的数组:
buildMyArray: function() {
var self = this;
var myArray = {};
window.myLibrary.getStuff('myParameter', function(myStuff) {
for (var myKey in myStuff) {
if (myStuff.hasOwnProperty(myKey)) {
var myValue = myStuff[myKey];
myArray[myKey] = myValue;
}
}
self.set({ myArray: myArray });
});
}
但是,如何从其他属性访问该数组?换句话说,我想做这样的事情:
checkArrayStuff: function(arrayKey) {
//loop through myArray and check value for arrayKey.
//var myArray1 = self.get(myArray);
//var myArray2 = this.get(myArray);
//var myArray3 = myArray;
//var myArray4 = this.myArray;
//var myArray5 = self.get('myArray');
//var myArray6 = this.get('myArray');
var myArray7 = self.myArray;
var can = myArray7[arrayKey];
return can;
}
我尝试了几种自我,这种,带有和没有引号,带有和没有get方法等等。
答案 0 :(得分:0)
我想你必须这样做
checkArrayStuff: function(arrayKey) {
return this.get('myArray')[arrayKey];
}
答案 1 :(得分:0)
this.get('myArray')
应该,但看起来你的window.myLibrary.getStuff
函数是异步的。这意味着myArray
将在buildMyArray
返回后的某个时间才会设置。如果你给我们更多的上下文,我们可以更好地建议如何解决这个问题,例如在完成.set(..)或者让buildMyArray返回一个promise