我有一个问题,我不知道如何解决。
我有这个页面,其中包含一个项目。每个项目都有成员,每个成员可以有一个或多个角色。我想展示某种“选择列表”,其中所有分配的角色都被“选中”,并且可以在更新模型以反映这些更改的同时从每个成员中添加或删除角色。
我创建了一个简单的http://jsfiddle.net/vinblad/PhQRr/1/来演示我得到了什么,但正如我所说,我不知道如何解决这个问题,所以任何帮助都会很棒!
这是视图模型代码:
var viewModel = new function() {
var self = this;
self.project = ko.observable();
self.roles = ko.observable();
};
viewModel.load = function() {
var data = {"project":{"members":[{"member":{"name":"Vinblad
Anders","id":13,"isDeleted":false},"roles":[{"name":"Editor","id":1,
"isDeleted":false},{"name":"Admin","id":2,"isDeleted":false}],"id":1},{"member":
{"name":"Gramer Mikael","id":14,"isDeleted":false},"roles":
[{"name":"Reader","id":1,"isDeleted":false}],"id":2}],"name":"Project
XYZ","number":338,"id":1},"roles":[{"name":"Admin","id":1,"isDeleted":false}, {
"name":"Editor","id":2,"isDeleted":false}, {
"name":"Reader","id":3,"isDeleted":false}]}
viewModel.loadView(data);
};
viewModel.loadView = function(data) {
viewModel.project(data.project);
viewModel.roles(data.roles);
ko.applyBindings(viewModel);
};
viewModel.load();
在这个示例中,数据是硬编码的,实际上数据来自 web 服务,我使用了 knockoutjs.mapping 插件。