为什么绑定对象,对象值不会更新。 但是在keyup之后,valueitem会发生变化。
function Model() {
this.Id = "",
this.Name = "aa"
};
var vm = {
item: ko.observable(new Model()),
valueitem:ko.observable('bbbbb')
};
ko.applyBindings(vm);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-bind="with: item">
<input id='test' data-bind="value: Name"></input>
<p>You have input name : <span data-bind="text: Name"></span></p>
</div>
<br>
<div>
<input id='test' data-bind="value: valueitem"></input>
<p>You have input value: <span data-bind="text: valueitem"></span></p>
</div>
答案 0 :(得分:0)
我最好的猜测是Name
不是一个可观察的。试试这样:
var model = {
Id: ko.observable(""),
Name: ko.observable("aa")
}
var vm = {
item: ko.observable(model),
valueitem:ko.observable('bbbbb'),
};
ko.applyBindings(vm);
干杯
答案 1 :(得分:0)
如maaaagik
所述,您必须将Id和Name属性设为ko.observable,以便观察名称和ID的变化。
function Model() {
this.Id = ko.observable(""),
this.Name = ko.observable("aa")
};
var vm = {
item: ko.observable(new Model()),
valueitem:ko.observable('bbbbb')
};
ko.applyBindings(vm);