Ответ 1
Pager.js - это структура маршрутизации URL, созданная специально для использования с Knockout.js. Убедитесь, что вы просматриваете весь Demo, чтобы увидеть его полную мощность и гибкость. ИМХО, это намного превышает PathJS и Сэмми.
Переход от asp.net MVC 3. В MVC4 они представили WebAPI. Было бы неплохо иметь возможность использовать весь код просмотра/маршрутов в javascript и просто полагаться на MVC для API. Чрезвычайно круто, что webapi можно запустить независимо от IIS!
Сказанное:
Существуют ли какие-либо рамки страниц, которые могут использовать KnockoutJS, которые похожи на мой макет ниже:
Framework.RegisterRoutes(..,mainViewModel);//sets the CurrentViewModel?
Каждый маршрут представляет собой отдельный файл viewModel и представление, которое должно быть введено в главный вид
var mainviewModel= function(){
var self = this;
self.CurrentViewModel = ko.observable();
...
return self;
}
<div id="mainPageContent" data-bind:'html:CurrentViewModel.Render'>
</div>
Я знаю, что многие из них могут быть достигнуты самим собой, но не уверены, как достичь маршрутов регистрации/загрузки отдельных файлов.
Я чувствую, что основные преимущества нокаута - это способность не вторгаться в способ кодирования js (т.е. строить объект/структуру, как вы хотите, пока наблюдаются взаимодействующие объекты)
Pager.js - это структура маршрутизации URL, созданная специально для использования с Knockout.js. Убедитесь, что вы просматриваете весь Demo, чтобы увидеть его полную мощность и гибкость. ИМХО, это намного превышает PathJS и Сэмми.
Sammy.js - отличная легкая библиотека JavaScript для маршрутизации. Вы можете делать такие вещи, чтобы маршрутизировать их при использовании в паре с нокаутом (с веб-сайта учебников или KnockoutJS):
$.sammy(function() {
this.get('#:folder', function() {
self.chosenFolderId(this.params.folder);
self.chosenMailData(null);
$.get("/mail", { folder: this.params.folder }, self.chosenFolderData);
});
this.get('#:folder/:mailId', function() {
self.chosenFolderId(this.params.folder);
self.chosenFolderData(null);
$.get("/mail", { mailId: this.params.mailId }, self.chosenMailData);
});
this.get('', function() {
this.app.runRoute('get', '#Inbox');
});
}).run();
Другой вариант - использовать SproutCore, но его гораздо больше, чем nav, поэтому я не рекомендую этот маршрут, если вы не хотите, чтобы все SproutCore. Есть много других библиотек, но до сих пор мне нравится Sammy.js из-за того, насколько он легкий.
Я использовал PathJs с некоторым успехом, также есть Sammy, который является скорее основой. Ни один из них не является специфическим для KO.
Более тяжелое, но оптимизированное для KO решение было бы Knockback.
Надеюсь, что это поможет.
Я хотел бы бросить свою шляпу в будущие Googlers/SOers с ko-component-router.
IMO API намного более краток, чем Pager.js, и явно разработан для KO, который он создал в лакомых кусках, таких как наблюдаемые параметры маршрута и querystring.
Лучше всего, он активно поддерживается и останется таким же для обозримого будущего.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ. Я разработчик этого пакета.
Более старый вопрос, но для справки Durandal - отличная инфраструктура SPA для нокаута:
Я только открыла инфраструктуру mini SPA, которую я поставил вместе с Knockout основным компонентом.
Нокаут-сп Мини-(но полноценная) инфраструктура SPA, построенная на основе нокаута, требования, директора, сахара. https://github.com/onlyurei/knockout-spa
Live Demo: http://knockout-spa.mybluemix.net