Angular onEnter ui.router方法无法正常工作
Angular onEnter ui.router method not work how expect
我有一个Angular
应用程序,它的ui.router
模块有一个onEnter
方法。我想在单击状态菜单项并更改状态时调用函数。但现在我的应用程序无法正常工作。例如,当加载应用程序时,我转到app.com/what
,控制台打印所有5行,然后单击菜单后,就不会打印任何内容。我在这里读到这个
还有可选的"onEnter"answers"onExit"回调,分别在状态变为活动和非活动时调用。
页面加载时的控制台:
[debug] changeMenu item_id:1495
[debug] changeMenu item_id:1342
[debug] changeMenu item_id:1344
[debug] changeMenu item_id:1346
[debug] changeMenu item_id:1346
我的目标是只在单击菜单项或init
步骤时调用changeMenu
函数。
var changeMenu = function(itemID){
console.log("[debug] changeMenu item_id:"+itemID);
// for menu css
$("#nav_menu li.active").removeClass("active");
$("#nav_menu li#menu-item-"+itemID).addClass('active');
$('#nav_menu').spasticNav();
}
//
// Now set up the states
$stateProvider
.state('index', {
url: "/",
templateUrl: "main.html",
onEnter: changeMenu(1495)
})
.state('what', {
url: "/what",
templateUrl: "what.html",
onEnter: changeMenu(1342)
})
.state('where', {
url: "/where",
templateUrl: "where.html",
onEnter: changeMenu(1344)
})
.state('cost_rent', {
url: "/cost_rent",
templateUrl: "cost_rent.html",
onEnter: changeMenu(1346)
})
.state('cost_sell', {
url: "/cost_sell",
templateUrl: "cost_sell.html",
onEnter: changeMenu(1346)
})
});
当您使用onEnter时,它需要一个闭包(回调函数)。onEnter: changeMenu(1495)
不是回调函数,它执行函数,这就是为什么所有5条调试消息都显示在一起的原因。所以你可以做这样的事情:
$stateProvider
.state('index', {
url: "/",
templateUrl: "main.html",
onEnter: function() {
changeMenu(1495);
}
})
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- ajaxToolkit PopupControlExtender不工作.过时的
- HTML标记在脚本标记中工作
- javascript扫雷器floodfill算法不能正常工作