更改knockoutjs模型的可观察值
change observable value from knockoutjs model
我认为这是一件容易的事情。。。我有一个类似于这样的knockoutjs视图模型:
UserModel = function(user) {
// ...
this.Permissions = new PermissionsModel(user.Permissions);
this.fullAccessValue = ko.observable(false);
// if the permissions change
$.each(self.Permissions, function(i, item) {
item.subscribe(function() {
if (self.allStoresSelected() && self.allPermissionsSelected()) {
userModel.fullAccessValue = ko.observable(true);
$('#savFullAccessCheck').prop('checked', true);
} else {
userModel.fullAccessValue = ko.observable(false);
$('#savFullAccessCheck').prop('checked', false);
}
});
});
};
我要做的事:
我有一个带有复选框(权限)和另一个复选框(完全访问)的列表。现在,当选中所有权限复选框时,必须选中完全访问权限。如果未全部选中,则必须取消选中fullAccess。
否则,当我选中fullAccess复选框时,必须选中所有其他复选框。
复选框的权限如下所示:
var PermissionsModel = function(permissions) {
var self = this;
self.Access1 = ko.observable(permissions.Access1);
self.Access2 = ko.observable(permissions.Access1);
// ...
};
userModel = new UserModel();
ko.applyBindings(userModel, $('#savBottomWrap')[0]);
简而言之:我的问题是如何用javascript更新可观测值
这并不真的有效:
userModel.fullAccessValue = ko.observable(false);
$('#savFullAccessCheck').prop('checked', false);
我帮助了另一个人,你需要使用计算的
http://jsfiddle.net/AneL9/
self.SelectAll = ko.computed({
read: function() {
var item = ko.utils.arrayFirst(self.People(), function(item) {
return !item.Selected();
});
return item == null;
},
write: function(value) {
ko.utils.arrayForEach(self.People(), function (person) {
person.Selected(value);
});
}
});
当一个或多个项目取消选择时,knockoutjs取消选择/选择所有复选框
如果在这里实现
userModel.fullAccessValue = ko.observable(false);
比你能得到的价值如下:
userModel.fullAccessValue(true);
编辑:您应该将该值绑定到类似的复选框
<input type="checkbox" checked="data-bind: userModel.fullAccessValue">
相关文章:
- knockoutjs可观察数组
- Knockoutjs当父对象's可观察到的变化
- 对可观察数组foreach的更新删除了格式化knockoutjs
- Knockoutjs观察嵌套对象并订阅更改
- knockoutjs上的绑定按键事件,可观察到未填充
- 更改可观察数组会更改自定义绑定处理程序knockoutjs的可见性
- 正在更新Knockoutjs可观察数组项
- KnockoutJS - 传递不带引用的可观察值
- KnockoutJs - 共享可观察数组以提供更多选择
- KNOCKOUTJS 将多个输入元素绑定到一个可观察量
- 使用 KNOCKOUTJS 设置动态可观察量
- KnockoutJS observable不观察jQuery的empty()事件
- 无法使用 Knockoutjs 从可观察数组中删除项目
- 嵌套在 KnockoutJS 中可观察
- KnockoutJs 更新视图模型可从 Json Web 服务中观察到
- Knockoutjs:如果还没有值,则级联写入多个可观察量
- 从 Knockoutjs 中的可观察数组中删除项目
- Knockoutjs 可观察的布尔值返回奇怪的结果
- KnockoutJS从可观察数组中删除项目.Item 是 ul 中的列表项,由 foreach 生成
- 如何将计算可观察量添加到 KNOCKOUTJS 映射中