Я начал использовать 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-вызов на сервер, который фактически удалит разрешение пользователя. затем, если вызов будет успешным, удалите текущее разрешение из наблюдаемого массива, тогда представление будет обновлено... это хорошая практика?
Спасибо!