2012-08-27 13 views
5

मैं कोणीय में फॉर्म डेटा को क्रमबद्ध करना चाहता हूं।angularjs फॉर्म डेटा को क्रमबद्ध करें

function SearchCtrl($scope, $element, $http) { 
     $scope.url = 'php/search.php'; 
     $scope.submit = function() { 
      var elem = angular.element($element); 
      //var dt = $(elem.parent()).serialize(); 
      console.log($(elem.parent()).serialize()); 
      $http({ 
       method: 'POST', 
       url: $scope.url, 
       data: 'first=hgf&last=ghfgh', 
       headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
      }).success(function(data, status) { 
       $scope.status = status; 
       $scope.data = data; 
       $scope.result = data; // Show result from server in our <pre></pre> element 
       //var elem = angular.element(e.srcElement); 
       //alert($(elem.parent()).serialize()); 
      }).error(function(data, status) { 
       $scope.data = data || "Request failed"; 
       $scope.status = status; 
      }); 
      return false; 
     }; 
} 

संपादित:: निम्नलिखित नियंत्रक कोड है

<!DOCTYPE html> 
<html ng-app> 
<head> 
<title>Search form with AngualrJS</title> 
     <script src="../angular-1.0.1.min.js"></script> 
     <script src="http://code.jquery.com/jquery.min.js"></script> 
     <script src="js/search.js"></script> 



</head> 
<body> 
     <div> 
     <form ng-controller="SearchCtrl" ng-submit="submit()"> 
      <label>Search:</label> 
      <input type="text" ng-model="keywords" placeholder="enter name..."> 
      <input type="text" ng-model="desc" placeholder="enter description..."> 
      <button type="submit">Search</button> 
      <p>Try for example: "php" or "angularjs" or "asdfg"</p> 
     </form> 
<pre ng-model="result"> 
{{result}} 
</pre> 
    </div> 
</body> 

</html> 

लेकिन कुछ भी कंसोल पर मुद्रित हो जाता है। मुझसे कहां गलती हो रही है?

+0

एचटीएमएल शामिल करने के लिए सामग्री का संपादन किया। – z22

+0

मुझे आश्चर्य है कि क्यों '$ (elem.parent()) serialize())' '(elem) के बजाय' serialize() 'का उपयोग किया जाता है। $

'एक $ तत्व यहां नहीं है? – raina77ow

+0

मैंने $ (elem) के साथ प्रयास किया। Serialize(), अभी भी कोई परिणाम नहीं! मैं क्या shpuld करता हूँ? – z22

उत्तर

8

doc से:

एक ऐसा फ़ॉर्म तत्व के मूल्य के लिए धारावाहिक स्ट्रिंग में शामिल किए जाने, तत्व एक नाम विशेषता होनी चाहिए।

आपके एचटीएमएल इनपुट में नाम नहीं हैं, इसलिए serialize एक खाली स्ट्रिंग देता है। कुछ तरह के साथ इस को ठीक करें ...

<input type="text" name="keywords" ng-model="keywords" placeholder="enter name..."> 
<input type="text" name="desc" ng-model="desc" placeholder="enter description..."> 

और, btw, तुम jQuery समारोह में कोणीय $element रैप करने के लिए की जरूरत नहीं है: $element.serialize() ठीक काम करेगा।

Demo.

+0

$ element.serialize() अकेले काम नहीं करता है, यह मुझे ऑब्जेक्ट [[ऑब्जेक्ट HTMLFormElement]] देता है] क्रोम कंसोल में कोई विधि 'serialize' त्रुटि नहीं है – z22

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