指令只被调用一次
回答
这是预期的行为,链接函数仅针对任何指定的指令实例调用一次。既然你感兴趣的focus
情况下,我加入到该元素的指令适用于事件侦听器:
var mainApp = angular.module("myapp", ['ngMaterial']);
mainApp.directive("myDirective", function($log) {
return {
restrict : 'A',
require : "ngModel",
scope : {
myDirective : "="
},
link : function(scope, element, attrs, ngModel) {
element.on('focus', doSomething);
function doSomething() {
$log.log("value is:", scope.myDirective);
if (ngModel.$isEmpty() && scope.myDirective && scope.myDirective.length > 0) {
ngModel.$setUntouched();
ngModel.$setValidity();
}
}
}
}
});
http://plnkr.co/edit/RwTSsQKBtzzJDXE8by1I?p=preview
既然你也提到了“光标”,你可能会喜欢mouseover
事件也是如此。这是因为添加另一个事件监听器一样简单:
element.on('mouseover', doSomething)
注:我添加了一个额外的支票scope.myDirective
避免对阅读的undefined
length
控制台错误。
在OP的要求:
我不知道,如果jqLite支持所有这些,但对于所有DOM事件的列表,你应该检查这个page,你可能最感兴趣的FOCUS-,键盘 - &鼠标事件。
有关所有jqLite功能列表来查看this
完美!你能把我链接到“元素”对象可以使用的函数列表吗?你还可以将我链接到“焦点”/“鼠标悬停”之类的事件列表吗? –
@UmerFarooq我在我的文章中添加了相关链接 –
@UmerFarooq我错过了它,但我还添加了一个链接到所有jqLite函数 –
- 1. setNeedsDisplay只被调用一次
- 2. Toast.makeText只被调用一次
- 3. requestAnimationFrame只被调用一次
- 4. viewWillAppear只被调用一次
- 5. 使emberjs事件只被调用一次
- 6. Outlook.Explorer.SelectionChange事件只被调用一次
- 7. jQuery .load()函数只被调用一次
- 8. ngRoute RouteController只被调用一次
- 9. 。扩展函数只被调用一次
- 10. didReceiveAuthenticationChallenge只会被调用一次iPhone
- 11. appdelegate dealloc只会被调用一次?
- 12. $ .ajax使API调用两次,尽管它只被调用一次
- 13. 指令应该只执行一次
- 14. PHP - PDO查询执行两次execute()只被调用一次
- 15. 为什么我的指令被调用两次?
- 16. 角 - 广播,$在被调用的多次在指令
- 17. 如何计算每个指令被调用的次数(Angular 1. *)?
- 18. AJAX JQuery延期回调只会被调用一次
- 19. 如何确保Node.js样式的回调只被调用一次
- 20. AndroidStartServiceOnBoot.class在程序中只被调用一次..但我希望它每次调用
- 21. C:只调用一次
- 22. NSURLSession didReceiveChallenge只调用一次
- 23. RecyclerView.onBindViewHolder只能调用一次
- 24. onNestedScroll只调用一次
- 25. UIWebView只调用didFailLoadWithError一次
- 26. window.onresize只调用一次
- 27. iOS updateSearchResultsForSearchController只调用一次
- 28. DependencyProperties:PropertyChangedCallBack只调用一次
- 29. Command.StatementCompleted被调用一次
- 30. ()函数被调用一次
不链接plunkr,使用堆栈段或显示代码。当plunkr链接不再可用时,这个问题是不可用的 – Walfrat
@Walfrat好的。 Downvoter,请务必说出倒票的原因,以便将来不会重复“假定”的错误! –
那是原因:) – Walfrat