AngularJs: document.body.onfocus内部指令控制器
AngularJs: document.body.onfocus inside directive controller
当用户关闭或取消File Upload
窗口时,我试图捕获事件
<input type="file">
由于没有内置的监听器用于文件上传的关闭事件,我试图通过document.body.focus
事件捕获它,就像这里建议的那样
我让它运行使用javascript
document.body.onfocus = function() { console.log("hit me") }
现在我需要在Angular的指令中实现它,这样我就可以使用控制器中的对象将逻辑放入focus
事件中。
如何访问document.body
的onfocus
事件在一个角控制器?
来自@Phil建议(使用链接)
... this is a directive with controller
angular.directive("addPost", addPost);
addPost.$inject = ["$document", "$log"];
function addPost($document, $log) {
return {
...
link: link,
...
};
function link() {
$document.find('body').on('focus', function (e) {
$log.debug('HIT ME!');
});
}
使用link
/postLink
函数进行DOM操作。例如
.directive('addPost', ['$document', '$log', function($document, $log) {
return {
// snip
require: 'addPost',
link: function postLink(scope, element, attr, addPostCtrl) {
// scope is shared with the controller
// you can also access properties on the controller itself
// via addPostCtrl
$document.find('body').on('focusin', function(e) {
$log.debug('HIT ME!');
});
}
};
}]);
相关文章:
- 在指令控制器中使用$attrs时出现问题
- Angular,从指令控制器中的控制器触发函数
- 角度指令控制器:参数不是函数,未定义
- 如何将值传递到角度中的指令控制器
- angularjs+ui.router:指令控制器和链接函数之间的不同行为
- 触发CSS转换,使用来自Javascript的样式,从内部指令完成回调
- 如何使用角度指令控制器动态单击复选框
- 如何从父指令/控制器访问指令范围
- 外部 AngularJS 指令无法正确构建内部指令
- 角度 ng 重复内部指令视图
- 角度指令 - 需要从指令控制器访问所需的控制器
- 指令链接中的范围变量不会更新到指令控制器使用 Angular 读取它时
- 从链接函数修改指令控制器变量
- 监视指令控制器不工作
- Angular js 指令控制器访问范围属性,但返回未定义
- 从内部指令与主指令的通信 - 调用函数
- UI-select2 内部指令未更新控制器模型
- http调用位于指令内部的控制器内部
- 在指令控制器内部更新作用域
- AngularJs: document.body.onfocus内部指令控制器