1

我正在寻找在控制器中没有 ng-init 或丑陋代码的空值初始化模型的方法(我的表单模型非常巨大并且包含可变数量的字段)。

请运行示例http://jsfiddle.net/c9Q6Y/

“序列化”链接显示“{}” - 如果输入未触及则为空模型,如果输入要输入的内容并清除它,则显示 {"name":""}。

默认情况下,如何将AngularJS调整为将模型字段初始化为空行?

<div ng-app="">
  <form name="myForm" ng-controller="Ctrl">
      text: <input name="input"  ng-model="user.name">     
   <div>
      <a ng-click="Serialize()">Serialize</a> 
      </div>
       {{serializedUser}}
   </form>
</div>

function Ctrl($scope) {
    $scope.serializedUser = "";
    $scope.user = {};

    $scope.Serialize = function() {
        $scope.serializedUser = JSON.stringify($scope.user);
    }
}
4

1 回答 1

2

恐怕你必须手动完成...

$scope.user = {prop1: '', prop2: '', prop3: 0, prop4: [] ...};

您可以执行以下操作:

$scope.resetUser = function() {
  $scope.user = {prop1: '', prop2: '', prop3: 0, prop4: [] ...};
};

然后在控制器的底部:

$scope.resetUser();

另一种解决方案可能是从您的工厂返回这样的存根对象。

于 2013-03-13T10:31:30.947 回答