angularjs - 如何测试 ngIf 中函数是否存在

标签 angularjs

我正在尝试根据函数的存在隐藏/显示一些 HTML

<div ng-if="!!someFunc"> .... </div>
<div ng-if="someFunc !== undefined"> .... </div>

DEMO

现在的问题是,无论 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/

相关文章:

javascript - 尽管存在 <img> 标签,但图像未显示且没有错误

javascript - AngularJS 双向绑定(bind)

javascript - 引导模式中的自动完成

angularjs - 我可以将服务注入(inject) AngularJS 中的指令吗?

javascript - 有没有办法使用 Angular 来观察一组不在范围内但在服务中的变量?

angularjs - 父 div 中的 ui-sref 覆盖所有嵌套链接

javascript - md-select 搜索过滤器基于 ng-value 工作,但应该适用于文本

angularjs - “ng”不被识别为内部或外部命令、可操作程序或批处理文件。 (平均堆栈)

javascript - 将 $q 与 $http 一起使用

Angularjs 代码不适用于 Django