Я люблю KnockoutJS, но изо всех сил пытаюсь найти лучший способ создания приложений Javascript с большим масштабом.
Сейчас я обрабатываю код, создавая модель с корневым представлением, которая обычно начинается с уровня главной страницы, а затем расширяется. Я только ko.applyBindings()
на главном экране. Вот пример кода, который у меня есть:
var companyNamespace = {};
// Master page. (a.k.a _Layout.cshtml)
(function(masterModule, $, ko, window, document, undefined) {
var private = "test";
masterModule.somePublicMethod = function() {};
masterModule.viewModel = function() {
this.stuff = ko.observable();
};
}(companyNamespace.masterModule = companyNamespace.masterModule || {}, jQuery, ko, window, document));
// Index.cshtml.
(function(subModule, $, ko, window, document, undefined) {
var private = "test";
subModule.somePublicMethod = function() {};
subModule.viewModel = function() {
this.stuff = ko.observable();
};
$(document).ready(function() {
ko.applyBindings(companyNamespace.masterModule);
});
}(companyNamespace.masterModule.subModule = companyNamespace.masterModule.subModule || {}, jQuery, ko, window, document));
Я просто беспокоюсь, так как это древовидная структура, если мне нужно было вставить двойную главную страницу или что-то в этом роде, это было бы очень громоздким для повторного фактора.
Мысли?
ИЗМЕНИТЬ
Я знаю, что вы можете применять привязки к отдельным элементам, чтобы изменить область привязок, но что, если у меня есть вложенные модели представлений?