Вот шаги, которые я затем:Durandal: как вы динамически добавляете/удаляете элемент из навигационной модели?
1) новый asp.net MVC 4 проекта 2) выбрал шаблон Дюрандаль спа 3) в shell.js, добавили этот маршрут ...
{ route: 'orders/:id', moduleId: 'viewmodels/order', nav: false }
4) добавили viewmodel- order.js:
define([], function() {
var Order = (function() {
function Order() {
this.orderId = '';
}
Order.prototype.activate = function (id) {
this.orderId = id;
};
return Order;
})();
return Order;
});
5) добавили view- order.html:
<h1 data-bind="text: orderId"></h1>
6) добавлены некоторые ссылки на welcome.html:
<ul> <li><a href="#orders/1">Order #1</a></li> <li><a href="#orders/2">Order #2</a></li> <li><a href="#orders/3">Order #3</a></li> <li><a href="#orders/4">Order #4</a></li> </ul>
Это прекрасно работает, я нажимаю на одном из «порядка» ссылки на странице приветствия и представления заказа открывается. Here is a zip containing the project.
Каков наилучший способ добавить заказ, который я только что открыл в навигационной панели? После нажатия на ссылку заказа я хотел бы, чтобы панель навигации выглядела так:
Durandal | Добро пожаловать | Flickr | Приказ № 1
Если я нажал на другую ссылку заказа я хотел бы навигационную панель, чтобы выглядеть следующим образом:
Дюрандаль | Добро пожаловать | Flickr | Заказ №1 | Приказ № 2
И я хотел бы быть в состоянии закрыть заказ и в конечном итоге с этим (после закрытия первого порядка):
Дюрандаль | Добро пожаловать | Flickr | Приказ № 2
И последнее, но не в последнюю очередь, При перемещении между заказами я хотел существующие представления + ViewModel экземпляров остается нетронутым (Примечание: скрипт ViewModel возвращает конструктор, так что это немного отличается от приветствия и flickr).
Любые указатели на то, как это сделать, будут очень признательны.
Вот ссылка вернуться к этому вопросу в Durandal Google Group
Вы когда-нибудь разрешали это? Я пытаюсь сделать то же самое.http://stackoverflow.com/questions/21677597/how-to-dynamically-display-tabs-for-routes-in-durandal –
Нет, проект, над которым я работал, некоторое время был приостановлен. он собрал резервную копию на прошлой неделе, опубликует обновление, если мы пересмотрим этот сценарий на море. –