gpt4 book ai didi

angularjs - 将标签变形为输入

转载 作者:行者123 更新时间:2023-12-02 23:37:10 25 4
gpt4 key购买 nike

Angular 中将数据切换到“编辑模式”的正确方法是什么,其中 <label>变成 <input type='text'>的?我想在运行时创建和销毁 DOM 元素,而不是首先将所有输入渲染为隐藏(然后在切换到编辑模式时显示它们,并隐藏标签)。

最佳答案

类似 this jsfiddle 的内容应该为你工作。它仍然隐藏/显示,但输入不需要预先位于 DOM 中。可能有一百万种替代方法来处理这个问题,但我认为这至少会演示如何将功能放入指令中。

HTML:

<label inline-edit>Edit me</label>

指令:

'use strict';
var app = angular.module('myApp', []);
app.directive('inlineEdit', function() {
return{
restrict: 'A',
transclude: true,
template: '<label class="editing" data-ng-transclude></label>',
controller: ['$scope','$element','$transclude',function($scope, $element, $transclude) {
$transclude(function(clone) {
$scope.transcluded_content = clone[0].textContent;
});
$element.bind('click', function(){
$element.hide().after('<input type="text" value="'+$scope.transcluded_content+'" />');

$element.next().focus().blur(function (){
$scope.transcluded_content = $element.next().val();
$element.html($scope.transcluded_content);
$element.next().hide();
$element.show();
});
});

}]
};
});

关于angularjs - 将标签变形为输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17882925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com