Angularjs x可编辑控件在完成或取消后会失去焦点
angularjs x editable controls lose focus after done or cancel
我有基本的x可编辑控件,如输入字段或选择。我只是希望在完成控制后保持焦点。
template:
<div ng-controller="Ctrl">
<a href="#" editable-text="user.name" e-onblur="console.log(this);">{{ user.name || 'empty' }}</a>
</div>
controller:
app.controller('Ctrl', function($scope, $filter) {
$scope.user = {id: 1, name: 'name1'};
});
请查看问题的实时版本:http://plnkr.co/edit/BjWwXIlYyyLvRnVwO8m8?p=preview
我添加了一个模糊功能,但我似乎不能正确地修改它。如果有其他的解决方案,我想知道。
@heyNow,解决方案的大纲是这样的:
- 创建一个非隔离的'focus'指令,并将其应用于link元素。这应该是一个布尔值,其中true设置焦点
- 创建一个onhide函数,使'focus'指令中的条件为true
- 创建一个'unsetFocus'函数,该函数将'focus'条件设置为false,并且应该使用ng-blur和onshow来调用。
<a href="#" onhide="onhide(user)" onshow="unsetFocus()"
ng-blur="unsetFocus()" focus="focusObj==user"
editable-text="user.name">
{{ user.name || 'empty' }}
</a>
和指令和控制器:
app.directive('focus', function($timeout) {
return {
scope: false,
link: function(scope, element, attrs) {
scope.$watch(attrs.focus, function(newval,oldval) {
if (newval) {
$timeout(function() {
element[0].focus();
});
}
});
}
};
});
app.controller('Ctrl', function($scope, $filter) {
$scope.user = {
name: 'awesome user',
status: 2
};
$scope.onhide = function(obj) {
$scope.focusObj = obj;
}
$scope.unsetFocus = function() {
$scope.focusObj = null;
}
}
点击查看
相关文章:
- 在angularJS中取消后未检查无线电
- 如何防止 JQuery 在弹出窗口中点击取消后执行
- 以 jQuery 为中心的文本框在 Safari 中输入一个字符后失去焦点
- 变量在操作新实例后失去原始值
- AngularJS:单选按钮在移动到下一个部分后失去价值
- 取消后如何格式化jEditable字段值
- 模式弹出窗口中的DateTimePicker在取消后不再显示
- jquery对话框上的jquery日期选择器获胜't在按下取消后显示
- 在Facebook分享或取消后获得空白页
- 数据表在重新加载新数据后失去交互性和样式
- PaperJS符号项在命中结果搜索后失去属性
- Angularjs x可编辑控件在完成或取消后会失去焦点
- Javascript确认取消后停止页面刷新
- NW.js在OS休眠后失去透明
- 点击“取消”后的页面重定向确认对话框按钮
- Highcharts在IE<=9和Chrome上刷新后失去了它的's dateRange值
- 切换人像-风景-人像后失去媒体查询匹配
- Visual Studio 2015 RTM -在更新TypeScript工具后失去对JavaScript的支持
- 在javascript confirm()取消后,在表单提交按钮上运行AJAX函数
- AngularJS在JS表单插件渲染后失去了双向绑定