2017-05-16 2 views
1

오브젝트에 바인드하는 이유는 오브젝트 값이 갱신되지 않습니다. 키 업 후에 값 항목이 변경됩니다.녹아웃 바인딩 오브젝트, 필드 값이 입력 값 이후에 갱신되지 않습니다.

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

maaaagik 말했듯이, 당신은 이름과 ID의 변화를 관찰 할 수 ko.observable 중위로 ID와 이름 등록을해야한다.

+0

감사합니다. 작동하지만 다른 질문이 생길 수 있습니다. 개체 속성을 함수로 변환해야합니다. – edison

0

내 추측은 단순히 Name이 관찰되지 않는 것입니다. 이런 식으로 시도 :

var model = { 
    Id: ko.observable(""), 
    Name: ko.observable("aa") 
} 
var vm = { 
    item: ko.observable(model), 
    valueitem:ko.observable('bbbbb'), 
}; 

ko.applyBindings(vm); 

건배