2013-10-11 5 views
29

मैं अंगुलरजेएस के लिए नया हूं और मुझे समस्या है कि मुझे समस्या हल करने में समस्या है, स्टैक ओवरफ्लो पर एक समान सवाल था लेकिन यह मेरी मदद करने में प्रतीत नहीं होता था। मेरे मूल रूप से एक ऐसा फॉर्म होता है जो एनजी-क्लिक द्वारा अपडेट हो जाता है, लेकिन एक बार जब मैं किसी भी टेक्स्ट बॉक्स में टेक्स्ट दर्ज करता हूं, तो वे टेक्स्ट बॉक्स अब अपडेट नहीं होते हैं।एनजी-मॉडल अब टेक्स्ट इनपुट में टाइप करने के बाद अपडेट नहीं है

यह मेरा एचटीएमएल

Edit Course: 
<li ng-repeat="course in courses"> 
    <p> 
    <a ng-click="Edit_Course(course.id)">{{course.course_name}}</a> 
    </p> 
</li> 
<div ng-show="showedit == 1"> 
    <form novalidate ng-submit="edit_course()" class="simple-form"> 
    <label for="form_course_name">Course</label> 
     <input type="text" id="form_course_name" ng-model="edit_course_name"> 
    <label for="form_par">Par</label> 
     <input type="text" id="form_par" ng-model="edit_course_par"> 
    <label for="form_course_location">Course Location</label> 
     <input type="text" id="form_course_location" ng-model="edit_course_location"> 
    <input type="submit" id="submit" value="Edit Course" /> 
    </form> 
</div> 



यह मेरा समारोह है कि कहा जाता है जब किसी एक लिंक पर क्लिक करता

$scope.Edit_Course = function (id) { 
    var course = { 
     'course_id' : id 
    }; 

    $http({method: "POST", url: "http://www.dgcharts.com/editcourse", data: course}) 
    .success(function(data, status, headers, config){ 

     thecourse = data["course"]; 
     $scope.edit_course_name = thecourse.course_name; 
     $scope.edit_course_par = thecourse.par; 
     $scope.edit_course_location = thecourse.course_location; 
     $scope.edit_course_id = thecourse.id; 
     $scope.showedit = 1; 
    }) 
} 

उत्तर

115

अपने लिंक लॉगिन करना आवश्यक है है।

अगर मुझे आपकी समस्या के बारे में अनुमान लगाना है, तो यह कोणीय स्कॉइंग समस्या से संबंधित हो सकता है। इसके बजाय किसी ऑब्जेक्ट प्रॉपर्टी पर अपने एनजी-मॉडल बाध्यकारी को बदलने का प्रयास करें। तो अपने एचटीएमएल, बजाय में:

<input type="text" id="form_course_name" ng-model="edit_course_name"> 

ऐसा करते हैं

<input type="text" id="form_course_name" ng-model="course.edit_course_name"> 

और अपने जावास्क्रिप्ट में, ajax कॉलबैक पर, यह करने के लिए बदलने के लिए:

$scope.course = {}; //only do this if $scope.course has not already been declared 
$scope.course.edit_course_name = thecourse.course_name; 

इस बारे में अधिक जानकारी के लिए मुद्दा, देखें: https://github.com/angular/angular.js/wiki/Understanding-Scopes

+5

आपको बहुत धन्यवाद, जिसने इसे लगभग 60 सेकंड में तय किया। इस परियोजना के साथ जारी रखने से पहले मैं निश्चित रूप से स्कॉप्स पर पढ़ूंगा, क्योंकि मैं स्पष्ट रूप से उन्हें पूरी तरह से समझ नहीं पा रहा हूं। – EvWill

+3

@EvWill अच्छा स्पष्टीकरण क्यों यह आदिम के साथ काम नहीं करता है https://github.com/angular/angular.js/wiki/Understanding-स्कोप – Mirko

+3

मैं इसे एक महीने से अधिक समय तक गलत तरीके से उपयोग कर रहा था, आपको बहुत धन्यवाद। यदि यह सही तरीका नहीं है, तो कोणीय को देवताओं को इस तरह कोड लिखने की अनुमति नहीं देनी चाहिए। इस समस्या ने मुझे दो रात के लिए डरा दिया। : डी –

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