在Jenkov的本教程中,他断言您可以为表单命名,然后通过
在控制器中访问它$scope.FORM_NAME.INPUT_NAME
例如
<form name="myFormNg" ng-submit="myForm.submitTheForm()" >
<input name="firstName" type="text" ng-model="myForm.firstName">
</form>
然后在Angular中
$scope.myFormNg.firstName
然而,当我尝试它时,我没有得到我在输入框中输入的内容(abc
),而是得到了整个对象:
{"$viewValue":"abc","$modelValue":"abc","$$rawModelValue":"abc","$validators":{},"$asyncValidators":{},"$parsers":[],"$formatters":[null],"$viewChangeListeners":[],"$untouched":false,"$touched":true,"$pristine":false,"$dirty":true,"$valid":true,"$invalid":false,"$error":{},"$$success":{"parse":true,"required":true},"$name":"email","$options":null,"$$lastCommittedViewValue":"abc"}
为什么呢? Jenkov省略了吗?
答案 0 :(得分:1)
实际上,Jenkov提到(并且非常清楚)一件事:使用$scope.formName.inputName
,您将获得ngModelController
的实例(并且仅当此输入已被绑定时 - ng-model
或以某种其他方式)。
这个实例有很多用途;你可以获取它的视图值(通过$ viewValue属性;参见这个demo),检查它是否通过验证等 - 但它仍然是一个Object,而不是一个字符串。