0

我有一个视图模型如下:

define(
    ['jquery', 'knockout', 'knockout.mapping', 'data/data', 'infra/store', 'infra/util', 'nls/nls', 'models/models'],
    function ($, ko, mapping, data, store, util, resources, models) {
        var
            post  = {},

            getPost = function (param) {
                $.when(data.deferredRequest('postDetail', param.id))
                 .done(function (result) {
                     mapping.fromJS(result, {}, post);
                 });
            };

        return {
            post   : post,
            getPost: getPost
        };
    });

和上面的html文件如下

<section id="section-post-detail" class="view">
    <div class="page-header">
        <label data-bind="text: post.title"></label>
    </div>
</section>

我将视图模型应用于 html 文件,但是即使 post 对象中的 title 属性具有值,html 中的标题标签也不显示任何值。

我错过了什么?

4

1 回答 1

2

它应该是这样的:

<label data-bind="text: post().title"></label>

因为 post 属性是可观察的,所以在尝试读取子属性之前调用 post() 作为函数(以获取其当前值)很重要。

于 2012-12-09T13:07:42.387 回答