我有一个控制器功能,只需双击ng重复项目就可以调用它:
$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);
});
}
对我而言,应该更改我的Ionic应用程序并在屏幕上更新'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正确显示了我需要的内容,页面刷新后将显示它应该显示的内容。但是在我的代码中,它没有在成功回调中实时更新。
控制台日志显示正确的输出。
P.S我知道做结果[0] [0]不好,很快就会在结构上工作。
答案 0 :(得分:0)
update is a local variable to the function.
试
$scope.updates = result[0];
但你的结构看起来很不错。
答案 1 :(得分:0)
为了让likeUpdate
更改相关data.does_like
的{{1}}属性,您应该将update
传递给它,而不是update
解析{{update.data.id}}
到,即
<img on-double-tap="likeUpdate(update)" ...
在我们进行更改时,您应该删除已弃用的success
方法
$scope.likeUpdate = function(update) {
$http.post($rootScope.apiURL + 'likeupdate', {
update_id : update.data.id,
user_id : $rootScope.currentUser.id
}).then(function(response) {
update.data.does_like = response.data[0][0].does_like;
});
};