これはかなり基本的なことかもしれませんが、私はそれを理解できないようです。問題は
監視可能な配列「self.product」を持つビュー モデルがあり、以下に示すように、ネストされたモデルからアクセスしたいと考えています。これを実行すると、製品が存在しないというエラーが表示されます。コードは含めていませんが、データを取得して「製品」にプッシュする ajax 呼び出しがあります。また、関数 'test' でクリック バインディングを使用すると、値が出力されます。
「self」のスコープの問題かもしれませんが、マークアップの foreach バインディングで「product」配列を使用しているため、self.product ... を var product に変更することはできません。どうすればこれを達成できますか?
var viewModel = function () {
var self = this;
self.product = ko.observableArray([]);
var orderItem = function (data) {
var self = this;
self.PlayDuration = ko.computed(function () {
var foo = self.product()[0].something();
return foo;
});
}
self.updateTotals = function () {
console.log(self.product()[0].something());
}
});