Я работаю над заявлением о назначении назначения с несколькими арендаторами, используя Asp.net MVC и knockoutjs. Мне нужна помощь в решении шаблона кода javascript. У меня есть следующий сценарий:Является ли этот код кода javascript хорошим?
я получаю сложный ViewModel (имени: TenantModel) с сервера и в JavaScript Я использую knockout mapping plugin для создания нокаутирующих моделей.
Посмотрим, что у меня есть в моем TenantModel:
TenantModel содержит различные сложные типы, такие как:
- Список <EmployeeModel>
- Список <CustomerModel>
- Список <ServicesModel>
- Профиль Модель
- и многое другое ..
Эти сложные типы могут дополнительно содержать сложные типы, такие как:
- EmployeeModel содержит перечень услуг подпадает под его юрисдикцию.
- ProfileModel содержит ContactModel
Сначала я расскажу свои усилия:
Я решил использовать Module Pattern в JavaScript коде. Так в настоящее время имеют в виде, чтобы структурировать яваскрипт код что-то вроде этого:
var profile = (function() {
var _viewmodel;
var initialize = function() {
//initialize _viewmodel here
};
var bind = function (node) {
ko.applyBindings(_viewmodel, node);
};
return {
initialize: initialize,
bind: bind
};
})();
var employee = (function() {
var _viewmodel;
var initialize = function() {
//initialize _viewmodel here
};
var bind = function (node) {
ko.applyBindings(_viewmodel, node);
};
return {
initialize: initialize,
bind: bind
};
})();
var tenant = (function() {
var _viewmodel;
var initialize = function (jsonTenantModel) {
_viewmodel = ko.mapping.fromJSON(jsonTenantModel, {
'Profile': {
create: function (option) {
//create Profile using profile module
}
},
'Employees': {
create: function (option) {
//create Employees using Employee module
}
}
})
};
var bind = function (node) {
ko.applyBindings(_viewmodel, node);
};
return {
initialize: initialize,
bind: bind
};
})();
Ребят я не опыта Javascript программист, но я хочу написать расширяемый и управляемый яваскрипт кода. Я хочу знать, что я думаю в правильном направлении? Или есть ли другой лучший способ добиться такого сценария?
Ваши модели кажутся слишком сложными. Вы должны передавать только те данные, которые каждая точка зрения действительно использует и требует. – rhughes
Похоже, вы пытаетесь взломать JavaScript, чтобы вести себя как C++. Это сделает ваш код тяжелым и громоздким. Я бы не рекомендовал этот подход вообще. –
На самом деле у меня есть панель для арендаторов, где арендатор может управлять всеми своими данными, такими как клиенты, службы, сотрудники и т. Д., Так что просмотр - это что-то вроде одностраничного приложения, поэтому я переношу все данные арендатора на это представление – gaurav