我正在以角度编写基本的cms类型的应用程序。我能够导航到没有深度链接的页面,如下所示:
<li ng-repeat="page in pages"><a href="#" ng-click="select(page)">{{page.linktext}}</a></li>
控制器具有:
$scope.select = function(selected){
$scope.currentPage = selected;
};
不,我使用的是深度链接:
<li ng-repeat="page in pages"><a href="#/pages/{{page.linktext}}">{{page.linktext}}</a></li>
有一个路线提供商拿起pageId
,控制器使用
$scope.currentPage = $routeParams.pageId;
我意识到问题是我将currentPage设置为id而不是对象。如何选择具有该pageId的对象?
添加了一个jsfiddle答案 0 :(得分:1)
$scope.currentPage = $scope.pages.filter(function (d) {
return d.linktext === $routeParams.pageId;
})[0];
然后检查$scope.currentPage
undefined
- 以确保合法网址已通过。