如何在Knockout中使用$ context?

时间:2012-12-14 22:01:52

标签: knockout.js

在阅读Binding Context上的Knockout文档后,我希望

这个HTML:

<div data-bind="with: blah">
    <pre data-bind="text: ko.toJSON($context, null, 2)"></pre>
</div>

和这个JS:

var viewModel = {
    blah: {
        hello: "hello",
    }
};

ko.applyBindings(viewModel);

会打印出来:

blah: {
    hello: "hello",
}

但是,我收到以下错误:

错误:无法解析绑定。消息:错误:传递一个返回ko.computed值的函数;绑定值:text:ko.toJSON($ context,null,2)

应该如何使用?

JsFiddle供参考。

1 个答案:

答案 0 :(得分:0)

刚想通了。 $ context和$ parentContext只保存该上下文的特殊属性。因此,为了获得我期望的内容,我必须将HTML更改为:

<div data-bind="with: blah">
    <pre data-bind="text: ko.toJSON($context.$data, null, 2)"></pre>
</div>

Updated JsFiddle