我有一个具有两个派生成员的observable,它们又使用一个函数来操纵主数据中的值。简单的函数,做一点字符串操作。
首次加载并绑定到DOM片段时,一切正常,但如果我更新值,则派生值不会更改。
//mvvm
window.userdata = kendo.observable({
user: null,
miniavatar: function () { return getAvatarUriWithRadius(this.get('user.AvatarPublicId'), 36); },
});
//first bind which works
$.post('Account/GetUser', {}, function(response) {
window.userdata.set('user', response.Data);
//bind the notifications and overduetasks
kendo.bind($('#top'), window.userdata.user);
});
//DOM
<div id="top">
<div id="latesthig" class="floatright">
<div data-bind="attr:{class:latesthigclass}"></div>
</div>
<div class="button floatright"><a id="search" href="#"></a></div>
<span class="button" id="addnote" title="add note"><span></span></span>
<span data-bind="text:miniavatar"></span>
<div id="messages"></div>
</div>
随后更改的值不会更改miniavatar派生成员的文本
window.userdata.set('user.AvatarPublicId', value);
任何想法?某处傻错? TIA
答案 0 :(得分:0)
您绑定到observable的User
子属性而不是observable本身。
更改绑定代码以绑定到observable:
kendo.bind($('#top'), window.userdata);