2012-09-28 9 views
68

मेरे पास एक साधारण डिलीट बटन है जो एक स्ट्रिंग या नंबर स्वीकार करेगा लेकिन एक एनजी-मॉडल चर स्वीकार नहीं करेगा (सुनिश्चित नहीं है कि यह सही शब्दावली है)।आप एक बाध्य चर को एनजी-क्लिक फ़ंक्शन में कैसे पारित कर सकते हैं?

<button class="btn btn-danger" ng-click="delete('{{submission.id}}')">delete</button> 

कौन उत्पन्न करता है:

<button class="btn btn-danger" ng-click="delete('503a9742d6df30dd77000001')">delete</button> 

हालांकि, कुछ भी नहीं होता है जब मैं क्लिक करें। अगर मैं एक चर चर कोड करता हूं तो यह ठीक काम करता है। मुझे लगता है मैं तो बस नहीं बातें "कोणीय" जिस तरह से कर रहा हूँ, लेकिन मुझे यकीन है कि क्या इस तरह से है :)

यहाँ मेरी नियंत्रक कोड है नहीं कर रहा हूँ:

$scope.delete = function (id) { 
    alert('delete ' + id); 
} 

उत्तर

131

आप उपयोग करने के लिए की जरूरत नहीं है ng-click में कर्ली कोष्ठक ({{}}), इस प्रयास करें:

<button class="btn btn-danger" ng-click="delete(submission.id)">delete</button> 
+2

कैसे मैं तो एक समारोह के माध्यम से submission.id पारित होगा? जो मैं समझता हूं उससे फ़ंक्शन (subm.id) {} ​​मेरे नियंत्रक में काम नहीं करेगा क्योंकि कोई फ़ंक्शन –

+1

* स्पष्टीकरण * को छोड़कर नहीं कर सकता है * :: गुणों के कोणीय मानों को पार करते समय आपको घुंघराले ब्रेसिज़ का उपयोग करने की आवश्यकता नहीं है, लेकिन आपको अभी भी आंतरिक HTML मार्कअप में उनकी आवश्यकता होगी। उदाहरण: <बटन एनजी-क्लिक = "हटाएं (सबमिशन.आईडी)"> {{submitted.displayValue}} – Rick

+0

मैं सोच रहा था कि यह ऐसा करने के दौरान परिवर्तनीय मूल्य के बजाय फ़ंक्शन को क्यों पारित कर रहा था: ' 'आपका उत्तर वास्तव में मदद करता है:' <बटन डेटा-एनजी-क्लिक = "टॉगल विवरण ('v_' + $ अनुक्रमणिका)"> विवरण ' मजेदार बात यह है कि गलत तरीके से ऐसा लगता है कि यह डेवलपर टूल विंडो में ठीक से प्रस्तुत कर रहा था। – jaybro

1

ngClick निर्देश एक अभिव्यक्ति बांधता है। यह {{ }} की आवश्यकता के बिना सीधे कोणीय कोड निष्पादित करता है (ngIf, ngChange, आदि)।

angular.module('app', []).controller('MyCtrl', function($scope) { 
 
    $scope.submission = { id: 100 }; 
 

 
    $scope.delete = function(id) { 
 
     alert(id + " deleted!"); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="app" ng-controller="MyCtrl"> 
 
    <button ng-click="delete(submission.id)">Delete</button> 
 
</div>

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