Knockout で遊んでみましたが、監視可能な配列へのプッシュに問題があります。以下の私のコードは、ボタンのクリックでサーバーからいくつかの json データをフェッチし、オブジェクトの配列を返します。最初の console.log コンソールは問題なく出力されます。オブジェクトの配列は問題なくダンディです。
ただし、各オブジェクトを監視可能な配列にプッシュすることはできないようです。コンソールに空の配列が表示されます。いくつかのバリエーションを試してみましたが、単純なものが欠けているように感じますが、追跡するのに苦労しています.
私がやろうとしているのは、サーバーからいくつかのデータをロードし、それをテンプレートにバインドできる監視可能な配列に入れ、配列の内容を出力するために foreach のようなことを行うことです。
$(function() {
$('#load').click(function() {
$.getJSON('/PreferredDrugList/service/preferredDrugs/y', function(data) {
$(data.preferredDrugs).each(function(index, obj) {
console.log(obj);
$('#result').append('<p>' + (++index) + ') ' + obj.drugName + ' : ' + obj.dosageFormDesc + '</p>');
myViewModel.drugList.push(obj);
console.log(myViewModel.drugList);
});
});//end getJSON
});//end load
});//end ondomready
var myViewModel = {
drugList: ko.observableArray() //list of drug names
};
ko.applyBindings(myViewModel);