Javascript 将对象传递给函数时角度范围不更新
我有一个控制器函数,在ng repeat中双击一个项目时调用该函数:Javascript 将对象传递给函数时角度范围不更新,javascript,angularjs,ionic-framework,angularjs-scope,Javascript,Angularjs,Ionic Framework,Angularjs Scope,我有一个控制器函数,在ng repeat中双击一个项目时调用该函数: $scope.likeUpdate = function(update) { $http.post( $rootScope.apiURL + 'likeupdate', { update_id : update.data.id, user_id : $rootScope.currentUser.id }).success(function(result, response){
$scope.likeUpdate = function(update) {
$http.post( $rootScope.apiURL + 'likeupdate', {
update_id : update.data.id,
user_id : $rootScope.currentUser.id
}).success(function(result, response){
update.data.does_like = result[0][0].does_like;
console.log(result[0][0].does_like);
});
}
<div ng-repeat="update in updates" class="custom-card">
<div ng-show="{{update.image}}" class="image">
<img on-double-tap="likeUpdate({{update.data.id}})" class="full-image" ng-src="https://s3-eu-west-1.amazonaws.com/images/{{update.image.name}}" imageonload>
</div>
{{ update.data.does_like }}
</div>
对我来说,这应该在我的Ionic应用程序上更改,并在屏幕上更新“Dos_like”值
然而,事实并非如此
以下是我的建议,请重复:
$scope.likeUpdate = function(update) {
$http.post( $rootScope.apiURL + 'likeupdate', {
update_id : update.data.id,
user_id : $rootScope.currentUser.id
}).success(function(result, response){
update.data.does_like = result[0][0].does_like;
console.log(result[0][0].does_like);
});
}
<div ng-repeat="update in updates" class="custom-card">
<div ng-show="{{update.image}}" class="image">
<img on-double-tap="likeUpdate({{update.data.id}})" class="full-image" ng-src="https://s3-eu-west-1.amazonaws.com/images/{{update.image.name}}" imageonload>
</div>
{{ update.data.does_like }}
</div>
{{update.data.does_like}
在页面加载时,update.data.doe_like正确显示我需要的内容,页面刷新后将显示它应该显示的内容。但在我的代码中,它不是在成功回调上实时更新的
控制台日志显示正确的输出
另外,我知道做的结果[0][0]不太好,很快就会进行结构方面的工作
update is a local variable to the function.
试一试
但是你的结构看起来不太好
试一试
但是你的结构看起来不对劲。为了让
likeUpdate
更改数据。你是否喜欢所讨论的更新
属性,你应该将更新
传递给它,而不是{update.data.id}
解析为的任何内容,即
<img on-double-tap="likeUpdate(update)" ...
为了让likeUpdate
更改所讨论的update
的data.dou like
属性,您应该将update
传递给它,而不是{{update.data.id}
解析为的任何内容,即
<img on-double-tap="likeUpdate(update)" ...
您使用的是什么版本的AngularJS?具体是什么版本?最近,$http
承诺上的success
回调已被弃用。我认为您只需将双击时的表达式更改为likeUpdate(update)
。我不确定您是如何通过{{update.data.id}}
传递其他错误的,您使用的是什么版本的AngularJS?具体是什么版本?最近,$http
承诺上的success
回调已被弃用。我认为您只需将双击时的表达式更改为likeUpdate(update)
。我不确定你是如何通过{{update.data.id}}
而没有收到其他错误的。谢谢,由于某种原因,我的屏幕上仍然没有更新,还有什么其他原因吗?即使我做了更新='test'什么都没发生谢谢,还是因为某种原因没有在我的屏幕上更新,还有什么可能?即使我执行update='test',也不会发生任何事情