Angularjs 简单指令抛出错误
我已经编写了一个简单的指令来设置元素的焦点。 然而,这个指令似乎给了我一些错误Angularjs 简单指令抛出错误,angularjs,Angularjs,我已经编写了一个简单的指令来设置元素的焦点。 然而,这个指令似乎给了我一些错误 app.directive('getFocus',['$timeout',function($timeout){ return { link: function(scope,element,attrs){ $timeout(function(){ element.focus(); },500); } }; }]); Plnkr可在以下位置获得:
app.directive('getFocus',['$timeout',function($timeout){
return {
link: function(scope,element,attrs){
$timeout(function(){
element.focus();
},500);
}
};
}]);
Plnkr可在以下位置获得:
请注意,传递到link函数中的元素不是dom元素,而是它周围的包装器 您需要将该行更改为
元素[0].focus()代码>
这应该是可行的。如果不使用jQuery,Angular将使用jQuery的内置子集:jqLite。
jqLite公开了jQuery方法的一个子集(并且.focus()
不可用)。
您可以在中找到更多信息
也就是说,元素
(传递给指令的链接函数)不是原始DOM元素,而是包装为jQuery/jqLite对象的元素
因此,如果没有jQuery,就不能使用element.focus()
但是您可以使用DOM元素的本机.focus()
方法:元素[0]。focus()
var-app=angular.module(“directiveApp”,[]);
app.controller(“DirectiveController”,函数($scope){
$scope.name=“Shantha Moorthy.K”;
});
应用程序指令(“myName”,函数(){
返回{
限制:“A”,
模板:“Shantha Moorthy K”
};
});
app.directive('helloWorld',function(){
返回{
限制:“AE”,
替换为:“true”,
模板:“你好,世界!!!”
};
});
app.directive('links',function(){
返回{
限制:“AE”,
替换:正确,
模板:“链接属性示例。”,
链接:功能(范围、要素、属性){
元素绑定('单击',函数(){
元素css(“背景色”、“白色”);
作用域$apply(函数(){
scope.color=“白色”;
});
});
元素绑定('mouseover',function(){
元素css(“光标”、“指针”);
});
}
};
});代码>
指令示例
这是一个属性指令。
这是一个显示Hello World的元素指令!!!
此指令示例在指令内使用link属性。