2

ViewModel メソッドに配列を渡したい:

self.helpMe = function ( myArray ) { 

    for (var i=1, ilen=myArray.length, i<ilen, i++) {
        //do something...
    } 
}

配列が 1 つの項目のみで構成され、helpMe 関数が別のメソッドから呼び出されることがあります。

self.saveMe = function (item) {

    self.helpMe( item.Topics );

    ...
}

トピックは次のように定義されています

self.Topics = ko.observableArray([]);

「with」データバインドを使用してクエリUIアイテムとしてインスタンス化されます。

ただし、トピックに値が 1 つしかない [ "Sheeps" ] とすると、myArray.length は 1 ではなく 6 になることがわかります。どこが間違っていますか?

4

3 に答える 3

1

代わりに試すことができるきちんとしたノックアウトユーティリティ..

self.helpMe = function ( myArray ) { 
    ko.utils.arrayForEach(myArray(), function () {
        //do something... This iterates through each element of the observableArray
    }
}

これはあなたの質問に答えないことに注意してください...私の意見では、はるかに使いやすく読みやすい代替案を提示しているだけです。

于 2013-10-14T19:54:21.537 に答える