以下是我遵循的步骤:
1) 新建 asp.net mvc 4 项目 2) 选择了 durandal spa 模板 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>
这很好用,我单击欢迎页面中的“订单”链接之一,订单视图打开。 这是一个包含该项目的 zip。
将我刚刚打开的订单添加到导航栏的最佳方式是什么?单击订单链接后,我希望导航栏如下所示:
杜兰达尔 | 欢迎 | 弗里克 | 订单 #1
如果我点击另一个订单链接,我希望导航栏看起来像这样:
杜兰达尔 | 欢迎 | 弗里克 | 订单 #1 | 订单 #2
我希望能够关闭一个订单并最终得到这个(在关闭第一个订单之后):
杜兰达尔 | 欢迎 | 弗里克 | 订单 #2
最后但同样重要的是,当在订单之间导航时,我希望现有的 view+viewmodel 实例保持不变(注意:viewmodel 脚本返回一个构造函数,因此它与welcome 和 flickr 视图模型有点不同)。
任何有关如何执行此操作的指示将不胜感激。
这是Durandal Google Group中此问题的链接