AngularJS单击以编辑下拉列表等字段
AngularJS click to edit fields such as dropdown
我偶然发现了这篇关于如何为表单构建点击编辑功能的文章。 作者指出:
如果你想要输入类型="日期"甚至选择呢?这 是您可以向指令添加一些额外属性名称的地方 范围,如字段类型,然后更改模板中的某些元素 基于该值。或者对于完全定制,您甚至可以转向 关闭替换:true并添加一个编译函数来包装必要的 单击此项可编辑页面中任何现有内容周围的标记。
在浏览代码时,我似乎无法思考如何以使其应用于任何角度组件的方式操作模板,更不用说如何使其应用于下拉列表了。 以下文章中的代码:
app.directive("clickToEdit", function() {
var editorTemplate = '<div class="click-to-edit">' +
'<div ng-hide="view.editorEnabled">' +
'{{value}} ' +
'<a ng-click="enableEditor()">Edit</a>' +
'</div>' +
'<div ng-show="view.editorEnabled">' +
'<input ng-model="view.editableValue">' +
'<a href="#" ng-click="save()">Save</a>' +
' or ' +
'<a ng-click="disableEditor()">cancel</a>.' +
'</div>' +
'</div>';
return {
restrict: "A",
replace: true,
template: editorTemplate,
scope: {
value: "=clickToEdit",
},
controller: function($scope) {
$scope.view = {
editableValue: $scope.value,
editorEnabled: false
};
$scope.enableEditor = function() {
$scope.view.editorEnabled = true;
$scope.view.editableValue = $scope.value;
};
$scope.disableEditor = function() {
$scope.view.editorEnabled = false;
};
$scope.save = function() {
$scope.value = $scope.view.editableValue;
$scope.disableEditor();
};
}
};
});
我的问题是,我们如何扩展上述代码以允许下拉编辑? 也就是说,能够更改为被选择的值。
您可以考虑的一种方法是使用 template: function(tElement,tAttrs )
.
这将允许您根据属性返回适当的模板。
app.directive("clickToEdit", function() {
return {
/* pseudo example*/
template: function(tElement,tAttrs ){
switch( tAttrs.type){
case 'text':
return '<input type="text"/>';
break;
}
},....
这在$compile文档中进行了概述
相关文章:
- 只有在HTML表单中选择了某个下拉列表时,才需要字段
- Qualtrics(Javascript)-矩阵表-用下拉列表替换文本输入字段
- 根据另一个字段选择获取新值后更新下拉列表内容
- jQuery ui自动完成下拉列表中的两个字段
- 从动态生成的输入字段中获取下拉列表中的数据,而无需保存值 - jquery
- 下拉列表自动填充到页面上的文本(非输入字段)中
- AngularJS单击以编辑下拉列表等字段
- 选择其他字段元素时如何重置选择选项下拉列表
- 选择下拉列表时,按角度中的多个字段排序
- Javascript - 将输入字段的值设置为等于从下拉列表中选择的值
- 引导下拉列表将所选值链接到输入字段
- 是否可以在 Recurly.js v4 中为到期月份和年份的托管字段提供下拉列表而不是文本输入字段
- 创建包含 SQLite 字段内容的 html 下拉列表
- 根据下拉列表中的选定选项选择要隐藏/显示的字段(编辑时)
- 在引导程序标记字段中插入标记后,调用“自动完成”下拉列表
- 根据输入字段设置下拉列表值
- 无法根据下拉列表或输入字段显示表中的行数
- 用户输入字段下拉错误
- 如何确保如果值在一个字段中输入,其他(伴随)字段/下拉列表必须填写/选择
- 如何只运行一个JQuery函数,如果一个特定的字段下拉选择