从路径Param中选择角度的对象

时间:2013-11-18 15:45:54

标签: javascript angularjs

我正在以角度编写基本的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的对象?

我在http://jsfiddle.net/cLNmS/

添加了一个jsfiddle

1 个答案:

答案 0 :(得分:1)

$scope.currentPage = $scope.pages.filter(function (d) { 
     return d.linktext === $routeParams.pageId; 
})[0];

然后检查$scope.currentPage undefined - 以确保合法网址已通过。