【问题标题】:How to init model in AngularJS?如何在 AngularJS 中初始化模型?
【发布时间】:2013-03-01 05:26:16
【问题描述】:

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

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

“Serialize”链接显示“{}” - 如果输入未触及则为空模型,如果输入要输入的内容并清除它,则显示 {"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);
    }
}

【问题讨论】:

  • 你的小提琴链接错误。
  • Stewie,感谢您的报告。固定。
  • 为什么需要空模型。你想达到什么目的?
  • 我想在angular之后处理模型对象,所以我需要知道字段对象包含哪些字段,即使它是空的。

标签: angularjs


【解决方案1】:

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

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

你可以这样做:

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

然后在控制器的底部:

$scope.resetUser();

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 2011-03-26
    相关资源
    最近更新 更多