如果你只需要在DOM来显示它,这应该工作:
<div ng-controller="appCtrl">
<p>{{ hasClosebtn ? "test" : "sdffffffff" }}</p>
<div>
如果你需要存储在$scope.closeBtnText
,您可以使用$watch
:
$scope.$watch('hasClosebtn', function(newValue, oldValue) {
$scope.closeBtnText = newValue ? 'test' : 'sdffffffff';
});
给予一定的见解为什么$scope
变量不被当前代码更新,觉得这个场景:
app.controller('appCtrl', function($scope) {
$scope.hasClosebtn = true;
$scope.closeBtnText = ($scope.hasClosebtn) ? 'test' : 'sdffffffff';
// $scope.closeBtnText => 'test'
$scope.hasClosebtn = false;
// $scope.closeBtnText => 'test'
});
代码的流量不回去重新评估你的三元表达。在$scope.hasClosebtn
上检测到变化发生在$digest
周期。
您可以使用'$ scope。$ watch'。 – NMSL