这绝对是在杀我。
这就是我所在的地方:
当我到达此页面时,它会将其打印到控制台中:
然后我点击lorem2作为ng-click,它应该改变左侧大方块上显示的对象。奇怪的是,当我点击lorem2:
时,它会将其发布到控制台中它会更改该变量的值,但它会使用与第一个位置相同的对象重写该更改。
最奇怪的是,如果我再次点击,我会得到这个:
这意味着现在更改仍然存在,并在大方块上显示lorem2。 关于什么可能触发这个的任何建议?
这是在控制器内部:
$scope.singleArticle = $scope.articlesList[0];
console.log($scope.singleArticle);
$scope.changeArticle = function(article){
$scope.singleArticle = article;
console.log($scope.singleArticle);
};
这是我调用的函数点击更改值。
这里有一些相关的HTML代码:
<div class="col-lg-7">
<div class="panel panel-default">
<div class="panel-body">
<p>{{singleArticle.title}}</p>
{{singleArticle.content}}
</div>
</div>
<div class="col-lg-3">
<div class="panel panel-default" ng-repeat="article in articlesList | limitTo: (1 - articlesList.length) | limitTo: 3">
<div class="panel-body">
<a ui-sref="articles_route({ article: article.title})"
ng-click="changeArticle(article)">{{article.title}}
</a> {{article.content | limitTo: 100}}.
</div>
</div>
</div>
感谢您的时间:)
答案 0 :(得分:1)
问题是您将article
作为参数加载到changeArticle
函数中。 article
是ng-repeat返回的articlesList
的关键。
您需要在每个ng-repeat循环显示的articlesList
数组中发送值。
使用ng-repeat
按索引跟踪track by $index
,并将每个数组项的索引传递给articlesList[$index]
<div class="col-lg-7">
<div class="panel panel-default">
<div class="panel-body">
<p>{{singleArticle.title}}</p>
{{singleArticle.content}}
</div>
</div>
<div class="col-lg-3">
<div class="panel panel-default" ng-repeat="article in articlesList | limitTo: (1 - articlesList.length) track by $index">
<div class="panel-body">
<a ng-click="changeArticle(articlesList[$index])">{{article.title}}
</a> {{article.content | limitTo: 100}}.
</div>
</div>
</div>
您可以阅读ng-repat
语法here.
编辑:另外,我正在回答这个问题,假设你有一个改变的url路径,就像你在OP的评论中所说的那样。此代码使内容按您的要求更改。