javascript - एकाधिक अभिव्यक्तियों के साथ एनजी-क्लिक का उपयोग कैसे करें?




angularjs angularjs-ng-click (2)

इस प्रश्न का उत्तर यहां दिया गया है:

मैं एकाधिक अभिव्यक्तियों को करने के लिए एनजी-क्लिक का उपयोग करना चाहता हूं। मैं दोनों को एक मॉडल पर एक मूल्य निर्धारित करना चाहता हूं, और इस तरह के $scope से एक विधि को कॉल करना चाहता हूं:

<a ng-click="navigation.book = book && bookSvc.showBook(book)" href="#{{book.id}}">{{book.title}}</a>

जहां मैं दो अलग-अलग अभिव्यक्तियों को अलग करना चाहता हूं जिन्हें मैं करना चाहता हूं। मुझे पता है कि मैं सिर्फ एक विधि जोड़ सकता हूं जो नियंत्रक में दोनों चीजें करता है। क्या मुझे बस ऐसा करना चाहिए, या अंदर दो ng-click अभिव्यक्तियों को सीधे ng-click से करने का कोई तरीका है?


आप केवल अभिव्यक्ति को ng-click में लिख ng-click

एनजीक्लिक निर्देश आपको तत्व पर क्लिक होने पर कस्टम व्यवहार निर्दिष्ट करने की अनुमति देता है।

लेकिन आप लिख सकते हैं:

<a ng-click="( (navigation.book = book) && bookSvc.showBook(book))" href="#{{book.id}}">{{book.title}}</a>

इस मामले में navigation.book book सामग्री प्राप्त करता है।

डेमो Fiddle

संदर्भ

navigation.book = book का आह्वान करने के लिए हमारे पास कई विकल्प हैं

क्या होगा यदि हम लिखेंगे:

ng-click="( bookSvc.showBook(book) && (navigation.book = book))"

इस मामले में (ऐसा लगता है जैसे bookSvc एक सेवा है) bookSvc.showBook(book) कुछ भी नहीं या false , navigation.book = book कभी निष्पादित नहीं होगी।

डेमो 2 Fiddle

लेकिन अगर bookSvc.showBook(book) true हो जाता है navigation.book = book लागू की जाएगी।

डेमो 3 Fiddle


बस ';' का उपयोग कर अभिव्यक्ति को अलग करने के लिए '&&' के बजाय आपके लिए काम करना चाहिए:

<a ng-click="navigation.book = book; bookSvc.showBook(book)" href="#{{book.id}}">{{book.title}}</a>





angularjs-ng-click