我不是一个有角度的主人,我试着做点什么。 假设像“我喜欢/我不喜欢”这样的功能。 当你在文章上时,你可以点击“我喜欢”按钮。如果您已经喜欢这篇文章,则会隐藏此按钮并显示“我不再喜欢”。
<button ng-hide="like" class="btn btn-success btn-xs pull-right" ng-click="iLike()">I like</button>
<button ng-show="like" class="btn btn-danger btn-xs pull-right" ng-click="notLike()">Don't like anymore</button>
当我重新加载页面而不是点击操作时,一切都按预期工作。 基本上我的iLike功能看起来像我认为错过的行为来自失踪的回报或要发射的事件:(
$scope.iLike = function(){
##hereIDoAnAPICalls##, function(){
$scope.like = false;
}, function(){
$scope.like = true;
}
}
答案 0 :(得分:1)
尝试将范围变量赋值包装到apply中,我认为它可以提供帮助,因为API调用可能是异步的,并且从angular的外部调用click事件
$scope.iLike = function() {
APIcall.then(function () {
$scope.$apply(function() {
$scope.like = false;
});
}, function () {...the same...});
};