1

我有一个 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

4

1 回答 1

0

您正在绑定到可观察对象的User子属性,而不是可观察对象本身。

更改绑定代码以绑定到可观察对象:

kendo.bind($('#top'), window.userdata);
于 2013-03-15T12:42:51.730 回答