angularjs – Angular JS:由控制器创建的菜单项上的“active”
发布时间:2020-12-17 07:27:46 所属栏目:安全 来源:网络整理
导读:我正在使用 JSON服务列出菜单项(链接).当导航不同的路线/页面时,我希望将“活动”类添加到当前活动的链接(即用户所在的页面). 我用这个jsfiddle作为起点:http://jsfiddle.net/p3ZMR/4/ 我在stackoverflow上也找到了几个答案,但它们都与上面的解决方案类似.
我正在使用
JSON服务列出菜单项(链接).当导航不同的路线/页面时,我希望将“活动”类添加到当前活动的链接(即用户所在的页面).
我用这个jsfiddle作为起点:http://jsfiddle.net/p3ZMR/4/ 我在stackoverflow上也找到了几个答案,但它们都与上面的解决方案类似. 但是,如果链接是通过ng-repeat生成的,那么该解决方案不起作用: <ul class="main-menu"> <li ng-repeat="page in pages"> <a href="/#/{{page.id}}" active-link="active">{{page.name}}</a> </li> </ul> 似乎在控制器添加链接之前调用了该指令. 有没有办法解决这个问题?
主要的编程概念是关注点的分离.我个人不喜欢在我的观点中保持逻辑或比较.我宁愿在javascript中保持业务逻辑和比较
HTML <ul class="main-menu"> <li ng-repeat="page in pages"> <a ng-click="menu(page)" ng-class="{ active: isActive(page.url)>{{page.name}}</a> </li> </ul> 使用Javascript angular.module('link',[]) function myController($scope,$location){ $scope.links = [ { url: "one",name: "One"},{ url: "two",name: "Two"},{ url: "",name: "Three"} ]; $scope.isActive = function (viewLocation) { var pattern = '/' + viewLocation,re = new RegExp(pattern); return re.test($location.path()); }; $scope.menu = function (location) { $location.path('/' + location.location); }; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |