バインディングの結果は正常に見えますが、createSubList
はシーンの背後で2回連続して呼び出されます。あなたはそれをブラウザのコンソールで見ることができます。どうすればこの問題を回避できますか?ノックアウトforeachバインディングのメソッドが2回連続して呼び出される
<section>
<!-- ko foreach : list1 -->
<div data-bind='text:$data'></div>
<!-- ko foreach : $root.createSubList($data) -->
<div data-bind='text:$data'></div>
<!-- /ko -->
<!-- /ko -->
</section>
function VM(){
var self = this;
self.list1 = [1, 2, 3, 4, 5];
self.createSubList = function(index){
// this method gets called twice, why?
console.log(index);
return ['Sub1'];
}
}
ko.applyBindings(new VM())
https://jsfiddle.net/7eL2ur8o/2/
感謝。私はこの質問を投稿する前にこれがなぜ起こるのかを追跡しようとしましたが、難しかったです。私はあなたが提案した宣言的なスタイルで行くつもりです! –