Angularjs 打开AngularUI模式时,在其输入字段中选择文本
我正在我的应用程序中使用。模式包含预先填充了某些值的输入字段。 请求:打开模式时,应选择该输入字段中的文本 我已经为所选文本输入制定了指令,我得到的最远结果是,当根据答案单击输入时选择所有文本,这很好,但当打开模式时,我需要该功能 我已经在那个模态实例中看到了“打开”承诺,但在那个块中我无法访问输入 模式对话框:Angularjs 打开AngularUI模式时,在其输入字段中选择文本,angularjs,angularjs-directive,angular-ui,angular-ui-bootstrap,Angularjs,Angularjs Directive,Angular Ui,Angular Ui Bootstrap,我正在我的应用程序中使用。模式包含预先填充了某些值的输入字段。 请求:打开模式时,应选择该输入字段中的文本 我已经为所选文本输入制定了指令,我得到的最远结果是,当根据答案单击输入时选择所有文本,这很好,但当打开模式时,我需要该功能 我已经在那个模态实例中看到了“打开”承诺,但在那个块中我无法访问输入 模式对话框: var modalInstance = $modal.open({ templateUrl: 'app/main/templates/dialogs/share-dialog.tpl
var modalInstance = $modal.open({
templateUrl: 'app/main/templates/dialogs/share-dialog.tpl.html',
controller: function ModalCtrl($scope, $modalInstance, item) {
$scope.ok = function () {
$modalInstance.dismiss('cancel');
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
},
resolve: {
item: function () {
return item;
}
}
});
带有select指令的模板零件:
<input ng-model="shareLink" type="text" class="form-control" id="share" selected-text >
var SelectedText = function () {
return {
restrict: 'A',
link: function(scope, element, attrs){
element.on('click', function () {
this.select();
});
}
};
};
return SelectedText;
我认为以下指令将解决您的问题:
app.directive("selectImmediately", function($timeout) {
return {
restrict: "A",
link: function(scope, iElement) {
$timeout(function() { // Using timeout to let template to be appended to DOM prior to select action.
iElement[0].select()
});
}
}
});
用法:
<input ng-model="name" type="text" class="form-control" id="share" select-immediately >
可以看到plnkr中的完整示例。您可以在任何地方使用此指令。至少共享您的代码通常更喜欢
ng click
,以支持jQuery样式的手动事件添加。假设模式对话框中有HTML,您可以共享所有相关HTML吗?这回答了问题-选择加载时的文本-而不是单击时的文本。