我正在尝试根据函数的存在隐藏/显示一些 HTML
<div ng-if="!!someFunc"> .... </div>
<div ng-if="someFunc !== undefined"> .... </div>
现在的问题是,无论 someFunc
是否存在,它总是会显示。有什么方法可以让这个工作或者我应该在作用域上创建另一个( bool )变量吗?
更新:我已重现该问题 here这次是 Angular v1.3.14
最佳答案
正如其他人现在指出的那样,在 Angular 1.0 中,ng-if 不存在。如果您必须继续使用 Angular 1.0,请尝试使用 ng-show。
编辑:我想澄清的是,虽然 ng-if 和 ng-show 都可以实现您在这种情况下所寻找的目标,但它们在幕后的行为确实有所不同。简而言之,当 ng-if 表达式的计算结果为“false”时,该元素将从 DOM 中删除。当 ng-show 表达式计算结果为 false 时,它只是更改元素的 display
属性。详细可以阅读here .
var myApp = angular.module('myApp', []);
function MyCtrl($scope) {
//$scope.test = function () {};
}
<div ng-controller="MyCtrl">
Is there a test function: {{!!test}}
<div ng-show="!!test">CLOSE</div>
</div>
关于angularjs - 如何测试 ngIf 中函数是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31295849/