我有一个用ng-repeat显示的对象数组:
<div class = "row" ng-repeat="article in academicArticles">
<div class = "col-md-9 academicArticle" ng-click = "index = $index">
<a ui-sref ="article">
<h2> {{article.title}} </h2>
<p> {{academicArticles.indexOf(article)}} </p>
<img src = "{{article.img}}" class = "img-responsive">
</a>
</div>
</div>
我想显示所选的&#34;文章&#34;在另一个州。现在我有:
<div class ="container">
<div class = "jumbotron">
<img src = "../../../photos/danielpark.jpg">
<h1>{{academicArticles[index].title}}</h1>
<p> Written By: {{academicArticles[index].author}} </p>
</div>
</div>
没有错误,但{{academicArticles[index].author}}
和{{academicArticles[index].title}
为空。如何在另一个状态中访问所选文章的数据?
答案 0 :(得分:0)
你可以通过传递所选&#34;文章&#34;的索引来做到这一点。作为状态参数到另一个状态。 假设另一个状态名为state2,你需要将状态参数添加到路由器注册中的状态,例如,如果你像这样修改了新状态,你可以添加索引如下
$stateProvider.state("state2", {
url: '/state2/:index',
templateUrl:'state2.html',
controller: 'state2Controller'});
然后在state2Controller中,您可以使用stateParams服务访问index参数,如下所示:
(function() {
angular
.module("app")
.controller("state2Controller", state2Controller);
state2Controller.$inject = ["$scope", "$stateParams"];
function state2Controller($scope, $stateParams){
$scope.index = $stateParams.index;
}
})()
答案 1 :(得分:0)
我认为你被ng-repeat
范围问题困住了,诀窍不是直接将原始类型绑定到范围而是使用像$scope.model
和$scope.model.authorId
这样的对象