Angularjs不更新由角度模板给出的标签

时间:2014-05-22 07:01:22

标签: javascript angularjs angularjs-scope

我有一个元素,其标题/标签带有angularjs

 <a ng-click="addCounter()" class="btn btn-sm btn-default">{{(($scope.addingCounter)?'Save':'Add')}}</a>

刷新页面时,按钮根据addingCounter变量保存或添加标题。单击按钮时,addCounter函数会更改addsCounter变量。但Button标签没有改变。

这是控制器中的方法

 $scope.addingCounter = false;
 $scope.addCounter = function () {
        $scope.addingCounter = !$scope.addingCounter;
 };

为什么?

2 个答案:

答案 0 :(得分:1)

从模板中删除$scope

{{addingCounter?'Save':'Add'}}

您曾参考控制器$scope.addingCounter对象的$scope(例如$scope.$scope.addingCounter)。 AngularJS无法找到这样的对象,默认情况下它会输入 falsy 值。这就是你看到Add的原因。

答案 1 :(得分:1)

从模板中移除$scope,如果它不起作用,您可以使用$scope.$apply功能:

$scope.addCounter = function () {
    $scope.$apply(function () {
        $scope.addingCounter = !$scope.addingCounter;
    });
};

You could see more here.