angular.js - angularjs menyedari mengklik dua kali teg span dan menukar teg span menjadi teg input?
怪我咯2017-05-15 16:55:25
0
4
953
Terdapat berbilang teg span dalam halaman dan setiap teg span terikat pada acara dwiklik Cara melaksanakannya dalam acara dwiklik, supaya tag span yang dwipipi menjadi tag input. , dan nilai dalam teg span menjadi Nilai teg input?
1. Mudah untuk melakukannya dengan bantuan html5 ciri baharu contenteditable dan arahan Angular. 2. Anda boleh menonton demo ini 3. Kod khusus adalah seperti berikut: app.js
(function(){
angular.module('MyApp', [])
.controller('MyController', MyController)
.directive('contentEditable', contentEditable);
MyController.$inject = [];
contentEditable.$inject = [];
function MyController(){
var vm = this;
vm.test = 'Hello World!';
}
function contentEditable(){
return {
require: 'ngModel',
link: function (scope, element, attrs, ctrl) {
element.html(scope.vm.test);
attrs.$set('contenteditable', false);
ctrl.render = function (value) {
element.html(value);
};
ctrl.$setViewValue(element.html());
element.bind('dblclick', function () {
if (!attrs.contenteditable) {
attrs.$set('contenteditable', true);
element[0].focus();
}
});
element.bind('blur', function () {
attrs.$set('contenteditable', false);
scope.$apply(function () {
ctrl.$setViewValue(element.html());
});
});
element.bind('keydown', function (event) {
var esc_key = event.which === 27,
enter_key = event.which === 13;
if (esc_key || enter_key) {
event.preventDefault();
element[0].blur();
}
});
}
};
}
})();
Walaupun tidak baik untuk menukar keperluan secara santai... tetapi saya rasa apa yang anda mahu sebenarnya adalah input sebelum klik dua kali adalah baca sahaja dan tidak mempunyai sempadan Selepas klik dua kali, ia berubah daripada baca-. hanya boleh diedit dengan sempadan... Tambahkan respons klik dua kali seperti yang dikatakan sebelumnya, dan tukar baca sahaja dan gaya dalam fungsi panggil balik.
1. Mudah untuk melakukannya dengan bantuan
html5
ciri baharucontenteditable
dan arahan Angular.2. Anda boleh menonton demo ini
3. Kod khusus adalah seperti berikut:
app.js
index.html
Hanya mengendalikannya dalam kualiti ng-dbclick
Secara umumnya, tulis dua, satu untuk disembunyikan dan satu untuk ditunjukkan:
Walaupun tidak baik untuk menukar keperluan secara santai... tetapi saya rasa apa yang anda mahu sebenarnya adalah input sebelum klik dua kali adalah baca sahaja dan tidak mempunyai sempadan Selepas klik dua kali, ia berubah daripada baca-. hanya boleh diedit dengan sempadan...
Tambahkan respons klik dua kali seperti yang dikatakan sebelumnya, dan tukar baca sahaja dan gaya dalam fungsi panggil balik.