【发布时间】:2015-01-11 08:52:22
【问题描述】:
我创建了一个 js 函数,用于切换对象上的属性的布尔值(位于数组中。总结一下我想要做的事情,我有 2 个列表。如果布尔属性,则一个列表显示项目为假。如果为真,另一个列表将显示一个项目(因此切换功能)。
我的问题是当我将切换功能绑定到双击事件(正确触发,通过调试器验证)时,我似乎无法正确绑定(或者可能完全是另一个问题)。如果我手动放置带有硬编码“Id”值的切换功能(确定数组中的哪个项目将被切换),则绑定工作正常并且项目出现在第二个列表中。
var TestNWJS = TestNWJS || {};
TestNWJS.QualificationList = (function () {
//private functions
function CreateQualificationModel(allCredentialsList) {
TetsNWJS.QualificationList.ViewModel = {};
TestNWJS.QualificationList.ViewModel.AllCredentials = ko.observableArray(allCredentialsList);
}
function toggleselected(allCredentialsList, id) {
var credential = ko.utils.arrayFirst(allCredentialsList, function (credential) {
var stringToInt = parseInt(id);
return credential.Id === stringToInt;
});
if (credential.Selected == false) {
credential.Selected = true;
}
else {
credential.Selected = false;
}
return credential;
}
//public function
return {
Init: function (allCredentialsList) {
CreateQualificationModel(allCredentialsList);
toggleselected(allCredentialsList, 51); // THIS IS THE HARDCODED TEST, IT WORKS
//THIS IS WHAT I WANT TO WORK CORRECTLY:
$("#allCredentials").live('dblclick', function (e) {
toggleselected(allCredentialsList, this.value);
});
ko.applyBindings(TetsNWJS.QualificationList.ViewModel);
}
}
})();
【问题讨论】:
-
你能把它放在一个小提琴中以了解什么不起作用吗?此外,您正在尝试从视图模型中添加它,但我建议创建一个快速自定义绑定处理程序来执行此操作。另外您使用的是哪个版本的 jQuery?
标签: html knockout.js