我正在实例化一个用于存储表单值的对象:
$scope.placeSomething = {
SomethingType: 1
};
表格
<form name="placeSomething" id="placeSomething" novalidate ng-submit="submitForm();">
...form stuff...
</form>
如果我检查控制器内$scope.placeSomething.SomethingType
的默认值是否存在,它会打印1
- 这很好。
但是当我提交表单时,默认值会丢失(除非我在其他功能中将另一个值应用于SomethingType
)
$scope.submitForm = function () {
console.log($scope.placeSomething.SomethingType); // this returns undefined. the default values is lost
});
如果我在表单中使用ng-init,则angular保留默认值并使用表单发送它。
<input type="hidden" ng-model="placeSomething.SomethingType" ng-init="placeSomething.SomethingType = 1"/>
为什么会这样?
修改
另一个有趣的事情是,如果我从其他$ scope更改$ scope值,它在提交时不会丢失。
$scope.SelectSomethingType = function (param, SomethingType, param2) {
$scope.placeSomething.SomethingType = SomethingType;
});
此功能在其中一种形式的ng-clicks中激活,并将值保存到SomethingType
就好了。
解决