У меня все еще есть проблемы с структурированием моих моделей knockoutjs.
Данные, которые я получил от сервера выглядит следующим образом:Knockoutjs viewmodel structure
var data = {
Creation: "2012-01-01T00:00:00Z",
Id: 3,
LastActivity: null,
Name: "Foo",
Permissions: {
IsAdmin: false,
IsInternal: false,
// ... some more boolean
},
};
Теперь я создаю модели так:
var getDetails = function (user, edit) {
UserModel = function() {
var self = this;
user = user || {
Id: 0,
Username: '',
Creation: new Date(),
LastActivity: new Date(),
Name: '',
Permissions: {
IsAdmin: false,
IsInternal: false,
// ... some more boolean
},
Stores: []
};
this.Id = ko.observable(user.Id);
this.Username = ko.observable(user.Username);
this.Creation = ko.observable(user.Creation);
this.LastActivity = ko.observable(user.LastActivity);
this.Name = ko.observable(user.Name);
// how handle the permissions ???
};
Разрешения как IsAdmin, IsInternal, etc
я должен использовать в галочки. Все являются логическими. Теперь мои вопросы, как наилучшим образом обрабатывать объект разрешений. Создать собственную модель? Или я могу использовать что-то вроде этого:
this.Permissions.IsAdmin = ko.observable(user.Permissions.IsAdmin);
создать модель представления для типа разрешений, т.е. 'PermissionsModel = function (permissions) {IsAdmin = ko.observable(); // ... и т. д.}, а затем в вашем 'UserModel' добавить' self.Permissions = new PermissionsModel (user.Permissions); ' –
в порядке, я думал, что это правильный путь. – chris