用于绑定knockout.js中viewmodel observable属性的非可观察属性的语法

时间:2013-04-22 17:30:45

标签: knockout.js knockout-2.0

我有一个视图模型如下:

function foo(param){

    this.prop = param;

};

var viewModel = function(){

    this.foo = ko.observable();

};

并在视图中

<input type="text" data-bind="value: foo.prop" />

在视图中,当我使用语法

<span data-bind="text: foo.prop" ></span>

它没有显示任何内容,也没有对更新的反应,但是

<div data-bind="with: foo" >
    <span data-bind="text: prop" ></span>
</div>

当值发生变化时,它会起作用并发生变化。

首次实施有什么问题?

1 个答案:

答案 0 :(得分:1)

在ViewModel中,如果你使用的是另一个对象,我认为你在这个对象定义中更好,将它的变量标记为可观察的.. 例如,你可以这样做:

function FooClass(param) {
    this.prop = ko.observable(param);
};

function viewModel() {
    this.foo = new FooClass('Hello World');
};
ko.applyBindings(new viewModel());

jsfiddle example