2013-03-14 11 views
10

मैं अगले टेम्पलेट है:AngularJS - एनजी-दोहराने के अंदर DOM एलीमेंट तक पहुंच

<div ng-repeat="friend in friends | filter:filterFriendsHandler"> 
    {{friend.name}} 
</div> 

और मेरे नियंत्रक में मेरे पास है:

$scope.filterFriendsHandler = function(friend){ 
    //HERE I WANT TO ACCESS TO FRIEND DOM ELEMENT; to do something like this: 
    //$(friendElement).text('foo'); 
} 

धन्यवाद

+0

आपको –

+0

करने के लिए निर्देश का उपयोग करने की आवश्यकता है कृपया इसे करने के लिए आप कुछ उदाहरण दे सकते हैं, बहुत बहुत धन्यवाद – Zzarcon

उत्तर

14

आप एक उपयोग करने की आवश्यकता directive उस

<div ng-app="test-app" ng-controller="MyController"> 
    <div ng-repeat="friend in friends" nop> 
     {{friend.title}} 
    </div> 
</div> 

जे एस

app.directive('nop', function(){ 
    return { 
     link: function(scope, elm){ 
      console.log('eee', elm, arguments); 
      elm.css('color', 'red'); 
     } 
    } 
}); 

डेमो: Fiddle

+0

यह वही है जो मुझे चाहिए: डी। धन्यवाद अरुण! – Zzarcon

+0

कभी कभी कोणीय प्यार होना चाहिए। –

18

मैं यहाँ विशिष्ट सवाल का जवाब देने जा रहा हूँ, हाँ मैं समझता हूँ कि यह काम करने के "कोणीय" तरीका नहीं है। यदि आप चीजों को "सही" तरीके से करना चाहते हैं, तो ऐसा न करें, निर्देश का उपयोग करें। वहां, अस्वीकरण अलग-अलग हैं, यहां यह कैसे करें:

असल में, आप जो करना चाहते हैं वह डीओएम तत्व को $ इंडेक्स या आपके एनजी-दोहराना ऑब्जेक्ट में एक अद्वितीय मान के आधार पर एक आईडी प्रदान करता है। यहां, मैं सिर्फ $ इंडेक्स का उपयोग करूंगा।

<div ng-repeat="friend in friends" id="friend_{{$index}}" ng-bind-html="doSomethingBadToTheDom('friend_' + $index)"> 
    {{friend.title}} 
</div> 

फिर, अपने नियंत्रक के अंदर, बस डोम कि आईडी के साथ तत्व के लिए क्वेरी:

$scope.doSomethingBadToTheDom = function(ele_id) { 
    var element = document.getElementById(ele_id); 
    element.innerHTML = "I'm abusing angular"; 
} 

हम एनजी-बाँध-एचटीएमएल का उपयोग कर रहे यहां क्योंकि डोम तत्व है जब आपके नियंत्रक उपलब्ध नहीं होगा समारोह निष्पादित करता है, एनजी-इनिट जैसे कुछ के मामले में, यह नहीं होगा।

फिर से, यह सब कुछ कोणीय खड़े होने के खिलाफ चला जाता है, इसलिए यदि आप कोणीय सर्वोत्तम प्रथाओं का पालन करने की कोशिश कर रहे हैं, तो ऐसा न करें।

मैंने ऐसी परिस्थितियों में भाग लिया है जहां तकनीक उपयोगी है, खासकर गैर-कोणीय पुस्तकालयों से निपटने के दौरान, या उन समय जब "कोणीय मार्ग" इसके लायक होने से अधिक परेशानी होती है।

संबंधित मुद्दे