Javascript 不创建属性的敲除
我有个小问题。 我的小提琴是 JSJavascript 不创建属性的敲除,javascript,knockout.js,knockout-3.0,Javascript,Knockout.js,Knockout 3.0,我有个小问题。 我的小提琴是 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
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>
<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>
试验
第一种情况是直接绑定到对象的不存在属性
第二种情况是通过“with”绑定到对象的不存在属性
在第二种情况下(使用“with”)敲除不会在对象中创建属性。
但它将在第一种情况下创建
我有什么问题?这里有一个问题
我希望这就是你想要的
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>
<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>
这是一个
我希望这就是你想要的
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>
<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>
我想通过敲除在对象中自动创建属性。我承认,如果我不使用“with”,它会正常工作。但是如果我用“with”关键字allfails@takayoshi您可以编写自定义绑定处理程序来创建属性,但标准处理程序不能。我想通过敲除自动在对象中创建属性。我承认,如果我不使用“with”,它会正常工作。但是如果我用“with”关键字allfails@takayoshi您可以编写一个自定义绑定处理程序来创建属性,但标准处理程序不能。难道您不能像下面这样初始化属性吗
vm.obj1=ko.observable({name:'})代码>?您不能像下面这样初始化属性吗vm.obj1=ko.observable({name:''})代码>?