【发布时间】:2012-06-14 14:05:03
【问题描述】:
我开始使用 knockout.js,我真的很喜欢它。 我使用 ASP.Net mvc、jQuery 和 knockout.js
我的问题是: 假设我有一个用户的管理屏幕,用户是我的视图模型 在用户内部我想要一个权限数组
我的用户视图模型:
var userViewModelClass = function () {
var self = this;
ko.mapping.fromJS({
ID: "",
permissions: []
}, {}, self);
}
现在.. 如果我向服务器发出 ajax 请求并返回 JSON,我使用映射插件,一切都按预期进行
但是...现在我希望我呈现的权限列表具有删除之类的操作。 所以我需要一个权限对象,然后权限数组将是权限对象数组。但我该怎么做?映射插件如何知道从服务器返回给他的数组中的对象实际上是在这样的对象上:
function permission() {
var self = this;
this.delete = function () {
};
ko.mapping.fromJS({
name: "",
level: ""
}, {}, self);
}
这是我问题的第一部分。 第二部分: 假设我得到了具有所有权限数组的模型,它们都是这个权限对象。现在我希望我视图中的每个删除按钮都绑定权限对象内的删除功能。 使用:
data-bind="click: delete"
删除功能的最佳实现是什么?我想到了类似的事情:对服务器进行ajax调用,这实际上会删除用户的权限。然后如果调用成功从可观察数组中删除当前权限,则视图将更新... 这是一个好习惯吗?
谢谢!
【问题讨论】:
标签: asp.net-mvc knockout.js knockout-mapping-plugin