AngularJS检查指令中是否存在函数
AngularJS check if function exists in directive
我有一个范围如下的指令:
scope: {
copyObject: '&',
deleteObject: '&'
}
现在,我的模板中有一个相应的按钮,看起来像这样:
<button ng-click="copyObject()">Copy</button>
但是,如果没有应用于copy-object
的功能,我想隐藏按钮,例如:
<!-- Should show the copy button -->
<my-directive copy-object="copyObject()"></my-directive>
<!-- Should not show the copy button -->
<my-directive></my-directive>
因此,我将以下内容应用于我的模板:
<button ng-click="copyObject()" ng-if="copyObject">Copy</button>
但这似乎不起作用,如果我检查指令真正的隔离范围,我会注意到,即使没有输入属性,函数仍然存在,所以按钮总是可见的。
是否可以检测函数是否绑定到copyObject()
?这样做是个好做法吗?我不确定指令是否应该知道绑定函数,或者这是某种范围访问冲突?
例如:http://jsfiddle.net/azchpo5q/(第二个按钮应该不可见,因为它没有绑定任何操作)。
您可以使用ng-if
中的函数来确定是否定义了该函数。
<button ng-click="copyObject()" ng-if="doShowCopy()">Copy</button>
然后定义这个方法:
$scope.doShowCopy = function() {
return (typeof $scope.copyObject == 'function');
}
相关文章:
- IE9的HTML5 Canvas getImageData()函数存在问题
- 如何添加函数中存在的所有参数
- 如何将一个函数附加到一个不存在的元素上
- 当提供函数名称时,检查函数是否存在于同一作用域中
- 运行时不存在Javascript函数
- 如何使用函数来确定 Javascript 数组中是否存在值
- 在运行Javascript/jQuery中的函数之前,检查元素是否存在是否更具性能
- TypeError:$(..).higharts不是函数-现有解决方案不起作用-Yeoman生成器存在问题
- 检查D3.js中的函数中是否存在URL
- 在Require.js中,如果Require()是一个函数,那么Require.config()是如何存在的
- JavaScript setInterval函数:是否存在错误
- javascript className函数存在问题
- 如何使用jsoup检测内联js函数?我基本上想检查内联函数是否存在
- 如果存在event.preventDefault函数,则ajaxForm不起作用
- 存在从函数返回值的问题
- 如何检测函数's窗口没有'我再也不存在了
- 有没有一个lodash函数可以合并两个对象并删除其中一个对象的属性(如果它们没有)'不存在于另一个中
- AngularJS检查指令中是否存在函数
- 检查页面上是否存在函数
- 用于检查javascript中是否存在函数的try/catch替代方案