我在使用ng-model时遇到问题。当我查看对象时,所有属性均为空:

$scope.edit = {
            name: " ",
            gender: " ",
            major: " ",
            gpa: " ",
            act: " ",
            sat: " ",
            toefl: " ",
            primary: " ",
            secondary: " ",
            country: " ",
            summary: " ",
            past: " ",
            media: " "
        };


但是当我单击提交按钮时,所有返回的都是

javascript - 文本区域上的ng-model不起作用-LMLPHP
在html页面中

代码:https://plnkr.co/edit/HJlfFVjq0cZWJDCDXSXw?p=preview

最佳答案

从小伙子们(尽管我无法运行您的代码),很明显的是,您在窗体中的两个不同场合使用同一控制器PlayerController


  这里发生的是,updateUser()属性的方法ng-click绑定到控制器PlayerController的新实例。因此,创建一个新的scope,并且完全不知道对其相邻同名控制器的范围属性(在本例中为edit)进行了哪些更改。


<div ng-controller="PlayerController">
   <!-- ISOLATE region -->
   <textarea ng-model="edit.someproperty"></textarea>
</div>
<div ng-controller="PlayerController">
   <!-- Another isolate region unaware of the above -->
   <button ng-click="updateUser(edit)">Update</button>
</div>




将您的整个表格包装在一个单独的ngController指令中,以便该范围内的所有内容(ngModel指令和方法updateUser)都使用相同的范围属性。

Simple Demo

注意:我还注意到您将ngController包裹在form中,这是不正确的。 AngularJS中的form施加一个FormController控制器对象,该控制器成为控制器的直接父级。实际上,使用ngController创建的控制器是用来处理表单逻辑的,而不是其他方式。

10-02 19:10