Angular ng-if 多个条件不工作
Angular ng-if multiple conditions not working
这是一个相对简单的问题,但我不明白为什么它不起作用。
所以我在 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% 确定是否会),如:
$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'">
感谢任何帮助。
谢谢
尝试使用函数:
$scope.addNewAssetIf = function() {
return $root.questionData.question_type_id != '1' || $root.questionData.question_type_id != '8';
};
您可以尝试使用 $rootScope
而不是 $root
并将 $rootScope
作为控制器中的依赖项包含在内吗?问题可能只是变量不在范围内。您也可以将其分配给您的 $scope
,然后直接在您的模板中引用它
基本上,我们的想法是尝试查看这些值是否正确绑定到您的模板。你甚至可以尝试
{{$root.questionData.question_type_id}}</div>
验证这一点,如果没有,则从解决根本原因开始。
我忽略了所有 angular 相关的内容,并试图理解该条件背后的基本逻辑。如果 ID == 1 是否满足要求它不同于 8 的第二个条件?对于 ID 为 8 的情况不是这样吗?
换句话说,你不需要 && 而不是 || 吗?
这真的应该是一个评论,但我没有足够的声誉。
这是一个相对简单的问题,但我不明白为什么它不起作用。
所以我在 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% 确定是否会),如:
$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'">
感谢任何帮助。
谢谢
尝试使用函数:
$scope.addNewAssetIf = function() {
return $root.questionData.question_type_id != '1' || $root.questionData.question_type_id != '8';
};
您可以尝试使用 $rootScope
而不是 $root
并将 $rootScope
作为控制器中的依赖项包含在内吗?问题可能只是变量不在范围内。您也可以将其分配给您的 $scope
,然后直接在您的模板中引用它
基本上,我们的想法是尝试查看这些值是否正确绑定到您的模板。你甚至可以尝试
{{$root.questionData.question_type_id}}</div>
验证这一点,如果没有,则从解决根本原因开始。
我忽略了所有 angular 相关的内容,并试图理解该条件背后的基本逻辑。如果 ID == 1 是否满足要求它不同于 8 的第二个条件?对于 ID 为 8 的情况不是这样吗?
换句话说,你不需要 && 而不是 || 吗?
这真的应该是一个评论,但我没有足够的声誉。