Подтвердить что ты не робот

Существуют ли какие-либо структуры страницы/маршрутизации для нокаутов?

Переход от 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 (т.е. строить объект/структуру, как вы хотите, пока наблюдаются взаимодействующие объекты)

4b9b3361

Ответ 1

Pager.js - это структура маршрутизации URL, созданная специально для использования с Knockout.js. Убедитесь, что вы просматриваете весь Demo, чтобы увидеть его полную мощность и гибкость. ИМХО, это намного превышает PathJS и Сэмми.

Ответ 2

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 из-за того, насколько он легкий.

Ответ 3

Я использовал PathJs с некоторым успехом, также есть Sammy, который является скорее основой. Ни один из них не является специфическим для KO.

Более тяжелое, но оптимизированное для KO решение было бы Knockback.

Надеюсь, что это поможет.

Ответ 4

Я хотел бы бросить свою шляпу в будущие Googlers/SOers с ko-component-router.

IMO API намного более краток, чем Pager.js, и явно разработан для KO, который он создал в лакомых кусках, таких как наблюдаемые параметры маршрута и querystring.

Лучше всего, он активно поддерживается и останется таким же для обозримого будущего.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ. Я разработчик этого пакета.

Ответ 6

Я только открыла инфраструктуру mini SPA, которую я поставил вместе с Knockout основным компонентом.

Нокаут-сп Мини-(но полноценная) инфраструктура SPA, построенная на основе нокаута, требования, директора, сахара. https://github.com/onlyurei/knockout-spa

Live Demo: http://knockout-spa.mybluemix.net

Особенности

  • Маршрутизация (на основе Flatiron Director): история HTML5 (pushState) или хеш.
  • Очень сложный и многоразовый: выберите модули/компоненты для страницы в JS-странице, и они будут автоматически подключены для HTML-шаблона страницы.
  • SEO ready (prerender.io)
  • Быстрый и легкий (85 КБ JS, миниатюрный и gizpped)
  • Создание двухуровневой сборки для JS для производства: общий модуль, который будет использоваться большинством страниц, и модули для страниц, которые будут ленивыми.
  • Организованная структура папок, которая поможет вам оставаться здоровым для организации и повторного использования JS, CSS, HTML
  • Использование нокаута 3.3.0+, так что он готов к ноутауту для веб-компонента и пользовательских тегов (http://knockoutjs.com/documentation/component-overview.html)
  • Вся документация находится на собственных домашних страницах основных зависимостей, поэтому вам не нужно полностью изучать новую структуру