功能需求:點擊按鈕后獲取input輸入框的焦點
獲取焦點用jq focus()不成功,因為angular也不推薦,所以網上找了一個在focus封裝成指令的方法
指令寫法:
.directive('myfocus', function($timeout, $parse) {
return {
link: function(scope, element, attrs) {
var model = $parse(attrs.myfocus);
scope.$watch(model, function(value) {
if(value === true) {
$timeout(function() {
element[0].focus();
});
}else if(value === false){
$timeout(function() {
element[0].blur();
});
}
});
}
};
});
html寫法:
<span>用戶昵稱:<input id="nickname" type="text" myfocus="isOpen" ng-model="userInfo.nickname" /></span>
<a ng-click="onChangeId()"></a>
注意myfocus的寫法,原網址寫的是my-focus,但是不成功,去掉-可以,好像是ng指令調用寫法問題,ng好的應該一眼就知道怎么回事了
controller寫法:
$scope.onChangeId = function(){
$scope.isOpen = true;
}