1

ここの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;
})();
4

1 に答える 1

0

確かなことはわかりませんが、潜在的に間違っていると目立つのは、Fooが自己実行関数であり、それ自体も返すということだけです。あなたがそれを何度も呼んでいるとき、それがあなたに何をもたらすのか分かりません。Fooを関数として使ってみましたか?

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;
}

また、htmlタグにも注意してください。自己終了タグは一般的に有効だと思いますが、常に機能するとは限らないため、ではなくを使用してください。

于 2013-03-06T15:43:43.813 に答える