这是一个相对简单的问题,但我无法弄清楚为什么这不起作用。
所以我在HTML中有ng-if语句,我检查条件是否为真。如:
<div class="new-asset" data-ng-if="$root.questionData.question_type_id != '1' || $root.questionData.question_type_id != '8'">
但由于某种原因,这不起作用。我也尝试过:
<div class="new-asset" data-ng-if="($root.questionData.question_type_id != '1' || $root.questionData.question_type_id != '8')">
哪个没有任何影响...我正在阅读并试图找到一个解决方案,有人建议将条件放在控制器中,这也会提高性能(如果可能的话,不会100%确定),如: / p>
$scope.addNewAssetIf = $root.questionData.question_type_id != '1' || $root.questionData.question_type_id != '8';
然后在html中将其引用为:
<div class="new-asset" data-ng-if="addNewAssetIf">
但由于异步加载和依赖性,我无法使用此方法。我需要以某种方式完成这项工作,我没有得到任何错误或任何错误,即使question_type_id为1,我仍然会显示.net-asset div。如果我删除OR语句并且只有1个条件就可以了:
<div class="new-asset" data-ng-if="$root.questionData.question_type_id != '1' || $root.questionData.question_type_id != '8'">
感谢任何帮助。
由于
答案 0 :(得分:2)
我忽略了与角度相关的一切,并试图理解条件背后的基本逻辑。如果ID == 1不满足第二个条件,它要求它与8不同?对于ID为8的情况,情况并非如此?
换句话说,你不需要&amp;&amp;而不是||?
这应该是一个评论,但我没有足够的声誉。
答案 1 :(得分:1)
尝试使用功能:
$scope.addNewAssetIf = function() {
return $root.questionData.question_type_id != '1' || $root.questionData.question_type_id != '8';
};
答案 2 :(得分:0)
您是否可以尝试使用$rootScope
代替$root
并在控制器中包含$rootScope
作为依赖项?问题可能只是变量不在范围内。您也可以将此分配给$scope
,然后直接在模板中引用
基本上,我们的想法是尝试查看值是否与模板绑定。你甚至可以试试
{{$root.questionData.question_type_id}}</div>
要验证这一点,如果没有,请先解决根本原因。