1

コントローラーに 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);
    }
}
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 に答える