我之前在代码中有:
<a click="showText=true">
<div ng-show="showText"></div>
未在控制器范围内定义/声明showText。
我接下来要添加$ watch:
$scope.$watch("testCase",function(){
$scope.showText = false;
});
但是,这并不会导致div隐藏在视图上。此外,我{{showText}}但该值未更新到视图。
我后来创建了一个切换功能:
<a click="toggle()">
toggle()否定showText的当前值。执行此操作后,$ watch可以更新该值。
有谁可以告诉我这个的原因?
答案 0 :(得分:0)
<div ng-app>
<a click="showText=true">
<div ng-show="showText"></div>
</div>
如果你想在控制器中保留变量然后将它初始化为false,那么这是有效的 如果你想添加手表,那么你可以添加&#39; showText&#39; 希望它会帮助你
答案 1 :(得分:0)
从角度documentation:
范围继承通常是直截了当的,你通常不会 甚至需要知道它正在发生......直到你尝试双向数据绑定 (即表格元素,ng-模型)到基元(例如,数字,字符串, boolean)在子范围内从父范围定义。它 没有像大多数人期望的那样工作。怎么了 是孩子范围得到自己的隐藏/阴影的属性 同名的父属性。这不是AngularJS的内容 做 - 这就是JavaScript原型继承的工作原理。新 AngularJS开发人员通常没有意识到ng-repeat,ng-switch, ng-view和ng-include都创建了新的子范围,所以问题就出现了 经常出现在涉及这些指令的时候。