私は問題を抱えており、解決方法がわかりません。
プロジェクトを含むこのページがあります。各プロジェクトにはメンバーがいて、各メンバーは 1 つ以上のロールを持つことができます。割り当てられたすべてのロールが「チェック」され、これらの変更を反映してモデルを更新しながら各メンバーにロールを追加または削除できる、ある種の「ピックリスト」を示したいと思います。
簡単な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 プラグインを使用しています。