我已经实现了bootstrap modal using angular bootstrap,效果很好。
这是我用过的代码的plunker link。
在我的模态中,我只有一个输入字段(文本框)需要由用户填写,并有一个保存和取消按钮。我希望当显示模态时,文本框应该具有焦点。
我尝试了autofocus
属性,否则在这种情况下不起作用。
下面粘贴的是模态上的html。
<div class="modal-header panel panel-heading">
<button type="button" class="close" ng-click="ok()">×</button>
<h4 class="modal-title">Add Project</h4>
</div>
<div class="modal-body">
<input autofocus="autofocus" type="text" class="form-control" id="ProjectName" placeholder="Enter project name here" data-ng-model="ProjectName" tab-index="1"/>
</div>
<div class="modal-footer">
<button class="btn btn-primary" ng-click="ok()" tab-index="2">Create</button>
<button class="btn btn-default" ng-click="cancel()" tab-index="3">Cancel</button>
</div>
如何让它发挥作用?
答案 0 :(得分:10)
这是一个plunker link with the fix:你需要为它创建一个指令
app.directive('focusMe', function($timeout, $parse) {
return {
link: function(scope, element, attrs) {
var model = $parse(attrs.focusMe);
scope.$watch(model, function(value) {
console.log('value=',value);
if(value === true) {
$timeout(function() {
element[0].focus();
});
}
});
element.bind('blur', function() {
console.log('blur')
scope.$apply(model.assign(scope, false));
})
}
};
});
答案 1 :(得分:3)
怎么样:
<input ng-init="$element.focus()">
这对我有用。
答案 2 :(得分:2)
自动对焦
<input type="text" name="fname" autofocus>
答案 3 :(得分:0)