Tuesday 15 January 2013

angularjs - Ng-transclude data from template in link -


मैंने निम्नलिखित कोणीय निर्देश लिखा है:

  angular.module ('solarquote.directives ', [])। निर्देश (' editfield ', फ़ंक्शन () {वापसी {प्रतिबंधित करें:' ए ', ट्रांस्लैक्ट: सच, टेम्प्लेट:' & lt; span ng-hide = "एडिटर एएनएटेड" एनजी-ट्रांसक्ल्यू "और <; lt; / span & gt; '+ // दृश्यमान फ़ील्ड' & lt; span ng-show = "editorEnabled" & gt; & lt; इनपुट वर्ग = "इनपुट-माध्यम" एनजी-मॉडल = "संपादनयोग्य फ़ील्ड" & gt; & lt; / span & gt; ', // संपादन योग्य फ़ील्ड लिंक : फ़ंक्शन (स्कोप, एल्म, एटर्स, सीटीएलएल) {स्कोप.एडिटोरएन्टेड = झूठे; स्कोप.एडिटिफायिलफिल्ड = एल्म। बाल [0]। बच्चे [0] .इनरीटेक्स्ट;}};})   < पी> और एचटीएमएल में, एनजी-दोहराने के अंदर:  
  & lt; span editfield & gt; {{item.fields.name}} & lt; / span & gt;   

मैं निदेशालय के टेम्पलेट में इनपुट फ़ील्ड को एनजी-ट्रांस्काइव में उसी सामग्री के साथ तैयार करना चाहता हूं। "बॉब" (या जो भी नाम): डीओएम के माध्यम से जाकर पाठ की पैदावार को हथियाने के लिए: {{item.fields.name}}।

ट्रांसस्क्यूड तक पहुंचने का सबसे अच्छा तरीका क्या है जानकारी?

धन्यवाद

एनजी-मॉडल को असाइन करना संभव नहीं है एक अभिव्यक्ति जिसे आप अपवर्जन ब्लॉक में निर्दिष्ट करते हैं ऐसा इसलिए है क्योंकि एक अवरोध ब्लॉक {{functionValue ()}} या {{field1 + ':' + field2}} जैसे एक अभिव्यक्ति हो सकती है। कोणीय को यह नहीं पता कि उन अभिव्यक्तियों को कैसे उलट करना है।

आप क्या कर सकते हैं, उस मॉडल के संदर्भ प्रदान कर सकते हैं जिसे आप अपडेट करना चाहते हैं। निम्नलिखित punkler देखें (jQuery की जरूरत है)

  निर्देश ('editfield', function () {var template = '' + '& lt; span ng-show = "editorEnabled" & gt; & lt; input क्लाइंट = "इनपुट-माध्यम" एनजी-मॉडल = "एडिटफील्ड" & gt; '&'; & lt; span ng-hide = "एडिटिंग एएनएटेड" एनजी-ट्रांसक्ल्यू & gt; & lt; / span & gt; ए ', टेम्पलेट: टेम्प्लेट, दायरा: {editfield:' = '}, transclude: true, link: function (scope, element, attrs) {var input = element.find (' input '); input.on (' blur ', कार्य () {scope.editorEnabled = false; गुंजाइश। $ लागू ();}); element.bind (' क्लिक ', फ़ंक्शन () {scope.editorEnabled =! Scope.editorEnabled; गुंजाइश। $ लागू (); Input.focus ();})}};})    

No comments:

Post a Comment