我是AngularJS的新手,我遇到的一个问题是无法解决,在stackoverflow上也有类似的问题,但似乎并没有帮助我。我基本上有一个可以通过ng- click更新的表单,但是一旦我在任何文本框中输入文本,这些文本框就不再更新。
这是我的HTML
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; }) }
您的链接需要登录。
如果我不得不猜测您的问题,则可能与角度范围问题有关。尝试将ng-model绑定更改为对象属性。因此在您的html中,而不是:
<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">
并在您的javascript中,在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