如何在骨干网中访问此阵列?

时间:2014-09-09 15:08:37

标签: arrays backbone.js

我是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方法等等。

2 个答案:

答案 0 :(得分:0)

我想你必须这样做

checkArrayStuff: function(arrayKey) {
    return this.get('myArray')[arrayKey];
}

答案 1 :(得分:0)

this.get('myArray')应该,但看起来你的window.myLibrary.getStuff函数是异步的。这意味着myArray将在buildMyArray返回后的某个时间才会设置。如果你给我们更多的上下文,我们可以更好地建议如何解决这个问题,例如在完成.set(..)或者让buildMyArray返回一个promise

之后让buildMyArray调用checkArrayStuff。