我有一个元素,其标题/标签带有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;
};
为什么?
答案 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;
});
};