在我看来,我有这样的形式:
<form name="form1">
<input name="msg" id="msg" ng-model="form_data.msg">
</form>
在我的控制器中,我通过获得输入的内容
var message= $scope.form1.msg;
然而,当我插入一些文本(例如"test_abc")并尝试打印输入的内容(在控制器内)时,我得到的是一个对象,而不是实际值。事实上
console.log(messageToSend);
给出该输出
[DEBUG]消息>>:[object object]controllers.js:646 Object{$viewValue:"test_abc",$modelValue:"test_abc"、$$rawModelValue:"test _abc"和$validators:Object,$asyncValidators:Object…}
当然,我只能获得$modelValue,但我注意到(有时)我可以使用模型值(只需使用$scope.modelVarName),而不是打印它。很抱歉,如果这很模糊,但我现在找不到具体的例子。
但是,总的来说,我需要理解:是否有一种方法(除了使用$$modelValue属性)来检索(在控制器中)定义的(在视图中的表单中)模型变量
<input name=msg ng-model="form_data.msg">
使用此标记,输入的值将在控制器作用域的form_data.msg
属性中更新。[form_data
是一个对象]。
Angular将更新控制器范围的form1.msg
中输入字段的验证相关信息。这里form1
是表单的名称,msg
是消息的名称这不是实际型号。您的实际型号是form_data.msg
。form1.msg
将包含验证相关信息。
如果要打印模型,请使用form_data.msg
而不是form1.msg
我在jsfiddle中使用了您的代码,它很有效,只做了一些更改,我只定义了应用程序并使用
{{form1.msg}}
以打印该值。
这是jsfiddle:
http://jsfiddle.net/diegounanue/5bbkmk3m/