जोड़ने के लिए फोकस ईवेंट पर कोणीय 2 मैं कोणीय 2 में एक कोणीय 1 ऐप अपडेट करना चाहता हूं और मेरे पुराने निर्देशों में से एक के साथ कोई समस्या है।कक्षा
विचार सरल है। जब एक इनपुट फ़ील्ड केंद्रित होता है तो कक्षा को जोड़ा जाना चाहिए (एमडी-इनपुट-फोकस) और दूसरा हटा दिया जाना चाहिए (एमडी-इनपुट-रैपर)। फिर इस प्रक्रिया को "धुंध" घटना पर उलट दिया जाना चाहिए - यानी ध्यान केंद्रित किया गया।
मेरा पुराना निर्देश बस लाइनों शामिल
.directive('mdInput',[
'$timeout',
function ($timeout) {
return {
restrict: 'A',
scope: {
ngModel: '='
},
link: function (scope, elem, attrs) {
var $elem = $(elem);
$elem.on('focus', function() {
$elem.closest('.md-input-wrapper').addClass('md-input-focus')
})
.on('blur', function() {
$(this).closest('.md-input-wrapper').removeClass('md-input-focus');
})
}
आदि ...
मैं स्पष्ट रूप से मेरे निर्देश के लिए क्लासिक शुरुआत है, लेकिन ..... कौशल समाप्त हो गया है
import {Directive, ElementRef, Renderer, Input} from 'angular2/core';
@Directive({
selector: '.mdInput',
})
export class MaterialDesignDirective {
constructor(el: ElementRef, renderer: Renderer) {
// Insert inciteful code here to do the above
}
}
किसी भी मदद की सराहना की जाएगी।
अद्यतन:
<div class="md-input-wrapper">
<input type="text" class="md-input">
</div>
और बाद तो
<div class="md-input-wrapper md-input-focus">
<input type="text" class="md-input">
</div>
:
HTML की तरह (से पहले इनपुट तत्व ध्यान केंद्रित किया गया था) लगेगा।
इनपुट तत्व एकमात्र ऐसा है जो एक फोकस ईवेंट (और इसलिए निर्देश के लिए लक्ष्य) प्राप्त कर सकता है हालांकि माता-पिता <div>
को क्लास एडिशन और हटाने की आवश्यकता होती है।
इसके अलावा मदद
Please see Plunker for help/explanation - यदि कोई
मैं अपने कोड Gunter के तर्क को समझने, लेकिन मैं यह काफी फिट नहीं करता है लगता है। कक्षा को मूल तत्व में जोड़ा जाना चाहिए। एचटीएमएल:
ठीक है, लेकिन माता-पिता मूल घटक नहीं है, लेकिन मूल टैग? इस मामले में आपको 'ElementRef' की आवश्यकता होगी। कोणीय में कोई निकटतम() 'नहीं है। क्या आप अभी भी इसका उपयोग करना चाहते हैं या सिर्फ '। माता-पिता' ठीक है? –
मैंने एचटीएमएल दिखाने के लिए अपना प्रश्न अपडेट किया है, अगर मदद करता है तो निर्देश को संलग्न किया जाना चाहिए :) –