我是angularJS的新手。我使用angularjs来实现一个网站。该网站有两页。第一页列出所有项目,如果用户点击它,它将重定向到详细信息页面。
我的路线配置如下:
var app = angular.module('myApp', ["ngRoute"]);
app.config(function($routeProvider) {
$routeProvider
.when("/list", {
templateUrl : "list.html",
controller : "listCtrl"
})
.when("/detail/:id"){
templateUrl : "detail.html"
}
});
在list.html中。我使用ng-repeat显示一个项目列表和一个监听器来监听鼠标点击。
<ul class="list-group">
<li class="list-group-item" ng-repeat="i in items">{{i.name}}
<a href="#" ng-click="goToEdit($index)">
<span class="glyphicon glyphicon-pencil"></span>
</a>
</li>
</ul>
我想在ng-click功能中将视图重定向到详细信息。
我试过了$location.path()
,但它没有用。
$scope.goToEdit = function(index){
console.log($location.path());
$location.path("/detail/" + index);
console.log($location.path());
}
这种方式不起作用。 即使第二次登录控制台显示location.path()已更改为&#34; /细节/ ID&#34;
如果我在$scope.$apply()
之后添加$location.path();
那么我将在行动中收到错误。
你有任何解决方案???
由于
答案 0 :(得分:1)
这可能与使用href="#"
有关,这在使用基于散列的路由
您可以自己设置href并且不需要控制器功能或ng-click
<a ng-href="#/detail/{{$index}}" >
请注意,由于在ng-repeat中使用过滤器或从数组中删除数据,$ index可能会发生变化,因此您应该给每个项目一个唯一的标识符
此外,您没有为第二条路线确定控制器