2015-05-16 16 views
11

मेरी कोड है कि:।बटन ट्रिगर नहीं करता एनजी-क्लिक करें

<label class="item item-input " style="height: 10%" ng-click="publish()"> 
<input type="text" placeholder="Title" ng-model="title"> 
<i ng-click="publishBlog()" class="button button-clear icon ion-paper-airplane padding-right"></i> 
</label> 

"प्रकाशित()" शुरू किया जा सकता है, लेकिन नहीं "publishBlog()" आयनिक डाल देंगे में आइकन। क्या आयनिक कारण है?

उत्तर

27

"लेबल" टैग के भीतर आपका क्लिक ईवेंट काम नहीं करेगा, क्योंकि लेबल आपके बटन पर क्लिक ओवरराइड कर रहा है।

हां, तो DIV बजाय लेबल, वह ठीक से काम करेंगे का उपयोग करें।

+0

मेरा दिन धन्यवाद दोस्त – zabusa

+0

@Keval बचाया:

.controller("my", function($scope){ $scope.publish = function($event) { alert("title"); }; $scope.publishBlog = function ($event) { $event.stopPropagation(); alert("icon"); }; }); 

यहाँ एक डेमो है इस दृष्टिकोण के साथ दुर्भाग्य से लेबल एनीमेशन जब इनपुट प्राप्त/खो देता है फ़ोकस काम नहीं कर रहे हैं (देखें [jsfiddle] (https://jsfiddle.net/dma_k/tu9aeag2/2/)): पहला इनपुट सही ढंग से काम कर रहा है बटन लेकिन कोई लेबल एनीमेशन नहीं; दूसरा इनपुट काम नहीं कर रहा है लेकिन लेबल एनीमेशन के साथ। –

4

Hardy ने कहा, आपको label के बजाय div का उपयोग करना होगा। लेकिन आपको यह सुनिश्चित करने के लिए $event.stopPropagation(); का उपयोग करना होगा ताकि केवल publishBlog() कॉल हो जाएं। $event.stopPropagation(); के बिना, दोनों कार्यों को बुलाया जाएगा।

तो, यहाँ एक नमूना कार्यान्वयन है:

<ion-content class="padding" ng-controller="my"> 
    <div class="item item-input " style="height: 10%" ng-click="publish($event)"> 
     <input type="text" placeholder="Title" ng-model="title"> 
     <i ng-click="publishBlog($event)" class="button button-clear icon ion-paper-airplane padding-right"></i> 
    </div> 
</ion-content> 

और अपने नियंत्रक: http://play.ionic.io/app/1b82ce25ca44

+0

सहायक, आपके लिए धन्यवाद डेमो –

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