0
我試圖擴展已經在RequireJS幫助下創建的現有Durandal路由器插件實例。覆蓋現有實例的方法
應該重寫方法map()
以添加額外的映射參數。
我應該如何從修改後的方法訪問原始方法?
index.js
define([ 'durandal/app', 'app/childRouter'], function(
app, childRouter) {
childRouter.map([ {
route : 'details/:id',
moduleId : 'details/index',
}, {
route : 'details/tabs/base',
moduleId : 'details/tabs/base',
} ]);
childRouter.buildNavigationModel();
return {
router : childRouter
};
});
childRouter.js
define([ 'durandal/app', 'plugins/router'], function(
app, router) {
var childRouter = router.createChildRouter();
childRouter._map = childRouter.map;
childRouter.map = function(data) {
data.unshift({
route : [ '', 'grid' ],
moduleId : 'grid/index',
});
childRouter._map(data);//CALLS THE OVERRIDEN METHOD AGAIN INSTEAD OF ORIGINAL
};
return childRouter;
});
嘗試過,但不是調用原來'圖()',它調用重寫再一次。我不明白髮生了什麼事? –
我需要一個小小的澄清:你打算在覆蓋的內部調用原始地圖功能嗎?或者你希望它只能在一般情況下被調用? – jestermax
看看這個JSFiddle:https://jsfiddle.net/nya30kmv/9/ – jestermax