我想用angularjs创建一个书签按钮,我有marks表来存储它,也是一个包含所有帖子的Json文件。
HTML:
// Using angular ng-repeat loops over the posts.
<button ng-click="ajax( 'storeBookmark', post.id, post.mark.disable);" ng-init="hasMark = post.mark.disable">
<span ng-show="hasMark" class='coreSpriteBookmarkFull32'></span>
<span ng-hide="hasMark" class='coreSpriteBookmarkOpen32'></span>
</button>
角工厂
app.factory('posts', ['$http', function($http) {
return $http.get('http://localhost/index.php/q')
.success(function(data) {
return data;
})
.error(function(data) {
return data;
});
}]);
角度控制器:
app.controller('WallController', ['$scope',"$http", 'posts', function($scope,$http, posts) {
$scope.hasMark = false;
posts.success(function(data) {
$scope.posts = data.factory.data;
$scope.user = data.user;
});
$scope.ajax = function(store,post_id,disable){
$http.post('http://localhost/index.php/question/'+post_id+'/'+store)
.success(function (data) {
$scope.hasMark = !disable; //*** this is the problem!
});
}
}]);
但这是行不通的,我也尝试了另一种方法,但这是其中的最好方法!
你有什么想法
最佳答案
正如您已经建议的,我认为它在$scope.hasMark = !disable;
语句中。我认为您应该更改以下内容:
在成功的回调函数中:
$scope.hasMark = !$scope.hasMark;
另外,请确保$ scope上存在
$posts.mark.disable
。我做了一个简化的Plnkr以显示我的意思:Plnkr