AngularJS变量依赖于作用域中的另一个变量
AngularJS variable dependent on another variable from the scope
我有下面的控制器代码。在初始加载时,closeBtnText
会根据hasClosebtn
正确设置,但当该变量稍后更新时,它不会更新。使用方法更新是唯一的方法吗?
app.controller("appCtrl", function($scope){
$scope.hasClosebtn = true;
$scope.closeBtnText = ($scope.hasClosebtn) ? "test" : 'sdffffffff';
});
});
如果您只需要在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.closeBtnText
已初始化为测试。
如果你在切换文本值的按钮上添加和ngClick,当你点击时,你会看到变化
由于这是一个新来的角度问题,我将为您提供ngClick的文档链接以进行进一步调查ngClick
相关文章:
- 导航到特定事件的另一个变量页面
- 在另一个函数中使用变量this
- 将节点数据分配给另一个变量jstree
- 如何将变量传递到另一个js文件
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 将会话变量从一个页面传递到另一个页面
- 替换另一个变量对象中的变量值
- 如何将JavaScript变量的数据传递到另一个php页面
- 如何将变量值附加到另一个变量
- 如何将一个变量从一个控制器传递到合金中的另一个控制器
- 当我更新另一个作用域变量时,作用域变量会自动更新
- 是否可以在另一个变量中使用未声明的变量
- 使用JavaScript打开另一个html页面时传递变量
- JS/ANGULAR使用一个变量's值作为另一个对象的键
- 将php页面URL中的变量传递给JavaScript和另一个php
- 用javascript将信息/变量从一个网页传递到另一个网页
- 如何使用javascript/jquery将变量从一个PHP文件传递到另一个PHP文件
- 变量比另一个变量少一个
- Javascript:OnChange事件,将数组变量传递给另一个函数
- javascript将函数中一个变量的参数值传递给父函数中的另一个