0

我一直在通过 ko.applyBindings(mww.vm) - ViewModel - 使用 ko.obsevableArray 和 ko 模板来迭代和显示:

mww.vm = (function () {
    var 
    loadWishlists = function () {
        mww.vm.wishlists.removeAll();
        $.each(mww.sampleData.data.wishlists, function (i, w) {
            mww.vm.wishlists.push(new mww.Wishlist()
                .WishlistId(w.WishlistId)
                .Name(w.Name)
                .Ocassion(w.Ocassion)
                .Date(w.Date)
            );
        });
    }

    addWishlist = function () {
        mww.vm.wishlists.push(new mww.Wishlist()
            .WishlistId(0)
            .Name($('#NameTxt').val())
            .Ocassion($('#OccassionTxt').val())
            .Date($('DateTxt').val())
        );
    };

    return {
        wishlists: ko.observableArray([]),
        friends: ko.observableArray([]),
        loadWishlists: loadWishlists,
        addWishlist: addWishlist
    };
})();

模板:

<div id="WishlistTempl" style="display:none;">
<div class="WishlistBox">
    <div class="wwBox">
        <div class="BoxHeading">
            <div class="ButtonPanel">
            <span data-bind="text:Name"></span>
        </div>
        <div class="FriendPicker" data-bind="template: {name:'FriendTmpl', foreach:$parent.friends}"></div>
    </div>
</div>

它可以工作,但是当我使用 addWishlist,在愿望清单 ko.observableArray 中推送一个新项目时,愿望清单的属性会显示在模板中,但不会显示在 $parent.friends 中。有任何想法吗?

4

0 回答 0