表单提交时丢失了Angular $ scope模块值

时间:2014-11-12 17:32:06

标签: angularjs

我正在实例化一个用于存储表单值的对象:

$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就好了。

解决

https://stackoverflow.com/a/26905500/3628867这是问题

0 个答案:

没有答案