0

我正在使用 Kendo Mvvm 为从数据源获取的项目创建模板。我想做的是在我的模板中有一个可见的绑定,我可以为正在单击的特定模板打开或关闭,但我无法让它工作。

模板的 HTML 位置:

<ul id="memberlistview" data-template="memberSelectTemplate" data-bind="source: allmembers" style="color: #333333; float: left; padding: 0"></ul>

HTML 模板:

 <script id="memberSelectTemplate" type="text/x-kendo-template">
    <div style="float: left; height: 55px; width: 100%; margin-bottom: 5px; background-color: white" data-bind="click: addmember">
       <div style="float: left; width: 40px; height: 55px; padding: 5px;" data-bind="visible: selecteduser">
            <img src="~/Images/imgCheck-blue.png" />
        </div>
        <img data-bind="attr: { src: userpic}" style="float: left; width: 55px; height: 55px; border-radius: 5px;">
        <h3 style="float: left" class="item-title" data-bind="text: userdisplayname"></h3>
        <div style="display: none" data-bind="text: userid"></div>
        <div style="display: none" data-bind="text: useradid"></div>
        <div style="display: none" username></div>
    </div>
</script>

Jquery设置模板:

 $.ajax({
    url: MobileHomePath + "GetAllUsers",
}).success(function (data) {
    vm.set("allmembers", [])
    if (data != null && data != "") {
        var count = 0;
        $.each(data, function () {
            vm.get("allmembers").push({
                selecteduser: false,
                userpic: data[count].Pic,
                userdisplayname: data[count].DisplayName,
                username: data[count].UserName,
                userid: data[count].Id,
                useradid: data[count].AdId,
            });
            count = count + 1;
        });
    }
});

Jquery 尝试更改模板:

    addmember: function (e) {
      e.data.selecteduser = true;
    },
    allmembers: [
    ]
4

1 回答 1

0

为了更新 HTML,您应该使用 observable object set 方法而不是直接赋值 - http://docs.telerik.com/kendo-ui/api/framework/observableobject#methods-set

于 2014-04-26T11:26:12.303 回答