当前位置: 首页 > 面试题库 >

输入文本输入后,ng-model不再更新

吕嘉赐
2023-03-14
问题内容

我是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



 类似资料:
  • 对此,作者提出了建议

  • 可以输出文本。 用法 Your browser does not support the video tag. 案例:标签标签 功能:显示输入的字母。

  • 问题内容: 在用户更改日期之前,日期输入不会显示日期 jsbin中的示例代码 我需要它才能在稳定的1.2.14版本上工作。可能吗? 问题答案: 我创建了一个简单的指令,以使标准表单元素能够与AngularJS〜1.2.16一起正常工作。 请查看此处以获取详细信息:https : //github.com/betsol/angular-input-date 这是演示:http : //jsfiddl

  • 问题内容: 我有一个文本输入,并且我不想允许用户使用空格,并且键入的所有内容都将变为小写。 我知道我不允许在ng-model上使用过滤器。 我看了看创造我自己的指令,但添加功能并没有更新的投入,只是有其他的元素就可以了。 如何更改当前输入的内容? 我实质上是在尝试创建“标签”功能,该功能与StackOverflow上的功能相同。 问题答案: 我建议观察模型值并在更改时对其进行更新:http ://

  • 我有以下输入-窗体-控件: 但是如果我像上面那样使用我的regex,我可以输入'、'或‘。符号。正确的正则表达式是什么?

  • 问题内容: 我有以下简单形式,其中将type =’email’输入绑定到模型: 假设用户输入了无效的电子邮件,然后单击“取消”按钮…因此需要重置表单。 在“取消”按钮的ng-click处理程序中,如果我将模型的值设置为“未定义”,则这不会将输入元素的$ valid属性更改回true(就此而言,也不更改表单的属性)。 如果我将模型的值设置为空字符串“”或为null,则$ valid属性的确设置为tr