【发布时间】:2016-12-16 04:38:39
【问题描述】:
每个角度都有一个问题。我想在控制器的 forEach 中增加我的值。我通过我的 API 像字符串一样取值,当我点击按钮时,我需要增加这个值。这是我的代码:
控制器:
PostService.getActivity(user)
.then(function (data) {
$scope.activities = data.activities;
});
$scope.AddToFavorite = function (activity_id, fav_count) {
PostService.AddToFavorite(activity_id, user)
.then(function (data) {
console.log('Like added');
$scope.acititivty.fav_count = parseInt($scope.acititivty.fav_count) + 1;
})
};
HTML - 查看
<div class="list card activity-card animated fadeIn" ng-switch-default ng-repeat="activity in activities" ng-if="activity.type == 'activity_update'">
<div class="item item-avatar">
<img ng-src="{{activity.user.avatar}}">
<div class="activity-header">
<h2>{{activity.user.username}}</h2>
<p am-time-ago="activity.time"></p>
</div>
</div>
<div class="item item-body">
<div ng-bind-html='activity.content' class="activity-content"> </div>
</div>
<div class="item item-body activity-footer row">
<!-- Favorite-->
<button ng-click="AddToFavorite(activity.activity_id, activity.fav_count)" class="col-50 add-to-fav"><i class="fa fa-beer violet"></i>
<span>({{activity.fav_count}})</span>
</button>
</div>
</div>
我尝试这样做:
<button ng-click="AddToFavorite(activity.activity_id, activity.fav_count); activity.fav_count = + parseInt(activity.fav_count) + 1" class="col-50 add-to-fav">
<i class="fa fa-beer violet"></i>
<span>({{activity.fav_count}})</span>
</button>
这是有效的,但每次值开始等于 1。如果 fav_count 在单击后等于 5,则显示 1。
我在控制器中尝试这样:
$scope.activity.fav_count = parseInt($scope.activity.fav_count) + 1;
但它是 forEach 中数组的一部分,我会更改它们。如何解决这个问题?我为此浪费了很多时间。
【问题讨论】:
-
你能提供你的代码的工作 plunker 吗?
-
应该是 activity.fav_count 而不是 acititivty.fav_count 吧?
-
@GraveyardQueen 抱歉弄错了。但它仍然无法正常工作
-
@Nitheesh 对不起,我试图这样做,但连接 plunker 和 fiddle 出了点问题。
标签: javascript angularjs arrays foreach