【发布时间】:2014-11-12 13:10:36
【问题描述】:
我需要将 2 个回调附加到 <input> 字段,如下所示:
<input ng-model="someModel"
first-callback="myOwnCallback()"
second-callback="myOtherCallback()">
我试图实现这个创建 2 个指令,它们都需要一个隔离范围并使用 '&' 标志公开这两个属性,如下所示:
[...]
.directive('firstCallback', function() {
return {
restrict: 'A',
scope: { firstCallback: '&' },
[...]
}
})
.directive('secondCallback', function() {
return {
restrict: 'A',
scope: { secondCallback: '&' },
[...]
}
})
[...]
这显然不起作用,因为 2 个指令都在请求隔离范围,这是不可能的(而且 ngModel 范围也可能存在一些问题,如果有的话)。
这是一个 plnkr:http://plnkr.co/edit/QGc3yrjzt57lWOkd7Etb?p=preview
任何人都可以告诉我在这种情况下是否有好的做法?
【问题讨论】:
-
解释输入回调的性质?他们应该如何工作? ng-change 不会是“回调”吗?
-
@EliteOctagon 是的,
ng-change是一个回调。第一个应该是 debouncedng-change(延迟后只调用一次),第二个应该是 conditionalng-change(仅在按下某些键时调用) .顺便说一下,在我链接的 plnkr 中,有我想要实现的完整示例。 -
明白了,现在更清楚了
标签: angularjs angularjs-directive angularjs-scope