我有点问题。 我的小提琴是
http://jsfiddle.net/LkqTU/25524/
JS
var helloVm = function()
{
var vm=this;
vm.obj1=ko.observable({});
vm.obj2=ko.observable({});
vm.test = function()
{
alert("fffff");
alert("Obj 1 name is "+vm.obj1().name);
alert("Obj 2 name is "+vm.obj2().name);
};
};
ko.applyBindings(new helloVm(), document.getElementById('foo'));
HTML
<div id="foo">
<div>
<input type="text" data-bind="value:obj1().name" />
</div>
<div data-bind="with:obj2()" style="margin-top:2px">
<input type="text" data-bind="value:name" />
</div>
<button data-bind="click:test">Test</button>
</div>
第一种情况是直接绑定到对象的未存在属性 第二种情况是通过&#34;与#34;绑定到对象的未存在属性。结合
在第二种情况下(使用&#34;使用&#34;),淘汰不会在对象中创建属性。 但它将在第一种情况下创建。
我有什么问题?
答案 0 :(得分:0)
这是JSFiddle
我希望这就是你所追求的目标。
<强> HTML 强>
<div id="foo">
<div>
<input type="text" data-bind="value: obj1().name" />
</div>
<div data-bind="with:obj2()" style="margin-top:2px">
<input type="text" data-bind="value:name" />
</div>
<button data-bind="click:test">Test</button>
</div>
<强> JS 强>
属性
name
不存在,因此您无法分配 它的价值。下面我已经设置了observables有一个对象name
属性。
var helloVm = function () {
var vm = this;
// Added an object property of name
vm.obj1 = ko.observable({
name: ''
});
// Added an object property of name = Result
vm.obj2 = ko.observable({
name: 'Result'
});
vm.test = function () {
alert("fffff");
alert("Obj 1 name is " + vm.obj1().name);
alert("Obj 2 name is " + vm.obj2().name);
};
};
ko.applyBindings(new helloVm(), document.getElementById('foo'));