Javascript textarea上的ng模型不';行不通
我在使用ng模型时遇到问题。当我查看对象时,所有属性都为空:Javascript textarea上的ng模型不';行不通,javascript,angularjs,Javascript,Angularjs,我在使用ng模型时遇到问题。当我查看对象时,所有属性都为空: $scope.edit = { name: " ", gender: " ", major: " ", gpa: " ", act: " ", sat: " ", toefl: " ", primary: " ", sec
$scope.edit = {
name: " ",
gender: " ",
major: " ",
gpa: " ",
act: " ",
sat: " ",
toefl: " ",
primary: " ",
secondary: " ",
country: " ",
summary: " ",
past: " ",
media: " "
};
但当我点击提交按钮时,它返回的所有内容都是
在html页面中
代码:来自plunker(尽管我无法运行您的代码),很明显,您在表单中的两个不同场合使用相同的控制器PlayerController
这里发生的是ng click
属性的方法updateUser()
绑定到控制器PlayerController
的新实例。因此,创建一个新的作用域
,并且完全不知道对其相邻同名控制器的作用域属性进行了哪些更改(在本例中为编辑
)
更新
解决方案
将整个表单包装在一个ngController
指令中,以便该范围内的所有内容(ngModel
指令和方法updateUser
)使用相同的范围属性
注意:我还注意到您将ngController
s包装在表单中,这是不正确的。AngularJS中的表单
强制使用表单控制器
控制器对象,该控制器成为控制器的直接父对象。事实上,您使用ngController
创建的控制器是用来处理表单的逻辑,而不是相反。从plunker(尽管我无法运行您的代码)可以明显看出,您在表单中的两个不同场合使用相同的控制器PlayerController
这里发生的是ng click
属性的方法updateUser()
绑定到控制器PlayerController
的新实例。因此,创建一个新的作用域
,并且完全不知道对其相邻同名控制器的作用域属性进行了哪些更改(在本例中为编辑
)
更新
解决方案
将整个表单包装在一个ngController
指令中,以便该范围内的所有内容(ngModel
指令和方法updateUser
)使用相同的范围属性
注意:我还注意到您将ngController
s包装在表单中,这是不正确的。AngularJS中的表单
强制使用表单控制器
控制器对象,该控制器成为控制器的直接父对象。事实上,您正在使用ngController
创建的控制器是用来处理表单的逻辑,而不是相反的方式。在plunker链接中给出的代码正确吗?请验证script.js是否存在。@MateenMomin现在已经存在了!plunker链接上给出的代码正确吗?请验证script.js是否存在。@MateenMomin现在已经存在了!
<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>