ここの2番目のアイテムがレンダリングされない理由がわかりません。つまり、1つのpだけが出力されます..:
<div class="row" data-bind="foreach: Foos">
<div class="three columns">
<p data-bind="text: CriteriaStub"></p>
<p data-bind="text: CriteriaStub"></p>
</div>
<div class="three columns">
<!--this gets rendered fine-->
<p data-bind="text: Baa"></p>
</div>
</div>
これは、連続的なバインディング要素に対してのみ発生するようです。
foreachのモデルアイテムを表示します。
var Foo= (function () {
function Foo(jsonObject) {
var self = this;
self.AdHocRecipients = ko.observableArray(jsonObject.AdHocRecipients);
self.CriteriaStub = ko.computed(function () {
return "No criteria";
});
self.AdHocRecipientsToStringStub = ko.computed(function () {
var stub = "";
for(var i in self.AdHocRecipients()) {
stub += (self.AdHocRecipients()[i].User) + ', ';
}
return self.AdHocRecipients().length > 0 ? stub.slice(0, -2) : "No recipiants";
});
var t = 2;
}
return Foo;
})();
親:
var ViewModel = (function () {
function ViewModel(json) {
var parsedFoos = new Array();
for(var i in json.Foos) {
parsedFoos.push(new Foo(json.Foos[i]));
}
this.Foos = ko.observableArray(parsedFoos);
return ViewModel;
})();