另一個解決方案是:
var params = {
param1: "parameter",
param2: "anotherparameter"
}
//notes : this object can contain arrays like knockout observable()
//or observableArray();
1.-創建shell.js對象(PARAMS),它像 波紋管映射到你的路由定義:
{ route: 'routestr/:id', moduleId: 'viewmodels/adir/mymodul', title: 'je suis',
hash: '#routestr', nav:3, routobj: params }
2:您可以更新,甚至可以在調用此路由之前從任何位置向對象添加新成員,方法是從路由中盜取對象。
var myrouteconfig = router.activeInstruction().config;
myrouteconfig.param2 = newvalue;
myrouteconfig.newdlyParam = value;
router.navigate("#routestr/" + id);
3.-然後,接收模塊中:
var activate = function (id) {
//var myid = parseInt(id); //noelem rubriq
var myrouteconfig = router.activeInstruction().config;
var mycallobject = myrouteconfig.params; //your object params
var valparam2 = mycallobject.param2; // your param2 last value
......
}
這是其中的URL需要,因此它可以很容易地共享或書籤的情況。儘管自己做起來並不難,但我真的很驚訝路由器不具備這種簡單直觀的功能。無論如何,感謝您澄清事情。 – patryk
以上答案中的鏈接都沒有工作! – Raeesaa
你是對的,文檔已被移動到這裏:http://durandaljs.com/documentation/api.html – edotassi