我的视图中有一些代码只会在特定值为真时出现。看起来像这样:
button type="button" ng-click="attachBarCode('enter')" ng-show="barcodeAllowed.status">Foo</button>
直到最近才开始工作。我的控制器有一些逻辑,根据Ajax数据,它会将$ scope.barcodeAllowed.status设置为true。突然间,按钮总是出现。为了帮助调试问题,我在视图中添加了一些额外的测试:
first test, <span ng-show="!barcodeAllowed.status">DONT SHOW</span><br/>
second test, <span ng-show="barcodeAllowed.status">DONT SHOW</span><br/>
test -{{barcodeAllowed.status}}-end -{{!barcodeAllowed.status}}- -{{barcodeAllowed | json}}-<br/>
test if <span ng-if="barcodeAllowed.status"> if was true</span><p>
这是事情变得疯狂的地方。在我看来,两者“不要显示”,即使看起来好像不可能。当我输出第三行中的值时,我看到了假和真,如我所料。
最后 - ng-if?它工作得很好!价值没有显示出来。
我听说人们提到ngShow可以在ngif中包含范围问题,但是我的代码不在ngif中。
答案 0 :(得分:4)
所以,你不会相信它是什么。我在我的应用程序中使用了内容安全策略,并且随心所欲地禁用了它。我一做到这一点就开始工作了。我玩了一下,发现我需要添加&#39; unsafe-eval&#39;到我的CSP的script-src区域,以便Angular能够应用样式。
答案 1 :(得分:0)
Ng-show / Ng-hide指令需要一个css类来显示/隐藏,因为它只是在scope-variable为truthy / falsy时为你的元素添加一个类。