当 gn-model 为真时如何将注意力转移到输入上?
How to move focus on input when gn-model is true?
我有 div 对象和输入字段,它们放置在隐藏表单中。当我点击 div 时,表格显示并且焦点必须移动到输入字段。
<div ng-click="createForm = true">
Create item
</div>
<div ng-show="createForm">
<form class="form-horizontal">
<div class="input-group">
<input type="text" ng-blur="createForm = false">
</div>
</form>
</div>
我找到了使用指令的解决方案,但它不起作用。
app.directive('focusOn', function() {
return function(scope, elem, attr) {
scope.$on(true, function(e){
elem[0].focus();
});
scope.$on(attr.focusOn, function(e) {
elem[0].focus();
});
};
});
您还没有应用该指令?
<input type="text" ng-blur="createForm = false" focus-on="createForm">
参见 this JSFiddle
HTML
<div ng-app="myApp" ng-controller="myController">
<div ng-click="createForm = true">
Create item
</div>
<div ng-show="createForm">
<form class="form-horizontal">
<div class="input-group">
<input type="text" ng-blur="createForm = false" focus-on="createForm">
</div>
</form>
</div>
</div>
JavaScript
var app = angular.module("myApp", []);
app.directive('focusOn', function() {
return {
limit: 'A',
scope: {
focusOn: "="
},
link: function(scope, elem, attr) {
scope.$watch("focusOn", function(e){
elem[0].focus();
});
}
}
});
app.controller("myController", ["$scope", function($scope){
$scope.createForm = false;
}]);
我有 div 对象和输入字段,它们放置在隐藏表单中。当我点击 div 时,表格显示并且焦点必须移动到输入字段。
<div ng-click="createForm = true">
Create item
</div>
<div ng-show="createForm">
<form class="form-horizontal">
<div class="input-group">
<input type="text" ng-blur="createForm = false">
</div>
</form>
</div>
我找到了使用指令的解决方案,但它不起作用。
app.directive('focusOn', function() {
return function(scope, elem, attr) {
scope.$on(true, function(e){
elem[0].focus();
});
scope.$on(attr.focusOn, function(e) {
elem[0].focus();
});
};
});
您还没有应用该指令?
<input type="text" ng-blur="createForm = false" focus-on="createForm">
参见 this JSFiddle
HTML
<div ng-app="myApp" ng-controller="myController">
<div ng-click="createForm = true">
Create item
</div>
<div ng-show="createForm">
<form class="form-horizontal">
<div class="input-group">
<input type="text" ng-blur="createForm = false" focus-on="createForm">
</div>
</form>
</div>
</div>
JavaScript
var app = angular.module("myApp", []);
app.directive('focusOn', function() {
return {
limit: 'A',
scope: {
focusOn: "="
},
link: function(scope, elem, attr) {
scope.$watch("focusOn", function(e){
elem[0].focus();
});
}
}
});
app.controller("myController", ["$scope", function($scope){
$scope.createForm = false;
}]);