带敲除的Mvvm:数组绑定和更改内部对象状态
我的视图模型中有一个数组。此数组的项是具有两个属性的Person对象。当我把它绑定到一个模板上时,它就可以了。但当我更改其中一个属性的状态时,它不会反映在UI中 我做错了什么带敲除的Mvvm:数组绑定和更改内部对象状态,mvvm,knockout.js,Mvvm,Knockout.js,我的视图模型中有一个数组。此数组的项是具有两个属性的Person对象。当我把它绑定到一个模板上时,它就可以了。但当我更改其中一个属性的状态时,它不会反映在UI中 我做错了什么 <script type="text/html" id="person-template"> <p>Name: <span data-bind="text: name"></span></p> <p> Is On Fac
<script type="text/html" id="person-template">
<p>Name: <span data-bind="text: name"></span></p>
<p>
Is On Facebook ?
<input type="checkbox" data-bind="checked: IsOnFacebook" />
</p>
</script>
<script type="text/javascript">
var ppl = [
{ name: 'Pouyan', IsOnFacebook: ko.observable(true) },
{ name: 'Reza', IsOnFacebook: ko.observable(false) }
];
function MyViewModel() {
this.people = ko.observableArray(ppl),
this.toggle = function () {
for (var i = 0; i < ppl.length; i++) {
ppl[i].IsOnFacebook = false;
}
}
}
ko.applyBindings(new MyViewModel());
</script>
姓名:
是在Facebook上吗?
变量ppl=[
{名称:'Pouyan',IsOnFacebook:ko.observable(true)},
{name:'Reza',IsOnFacebook:ko.observable(false)}
];
函数MyViewModel(){
this.people=ko.array(ppl),
this.toggle=函数(){
对于(变量i=0;i
当我按下按钮时,我想更改People.IsOnFacebook属性。更改将成功进行,但UI不会显示。您应该像调用函数一样调用它。比如:
ppl[i].IsOnFacebook(false);
这是因为ko.observable()
返回一个函数。它不再是您调用的属性,而是函数调用。所以在后台他们会更新你的用户界面。检索可观察到的属性。您还应该使用函数调用
请参阅本教程:您应该像调用函数一样调用它。比如:
ppl[i].IsOnFacebook(false);
这是因为ko.observable()
返回一个函数。它不再是您调用的属性,而是函数调用。所以在后台他们会更新你的用户界面。检索可观察到的属性。您还应该使用函数调用
请参阅本教程: