敲除绑定对象,输入值后字段值不会更新

时间:2017-05-16 03:33:05

标签: knockout.js

为什么绑定对象,对象值不会更新。 但是在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>

2 个答案:

答案 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);