2017-06-08 11 views
0

私はこの上の空白を引っ張ってる、それはリセットボタン更新しない値が

私がボタンを持っている...それが動作するはずのように見えますが、 :私はリセットしようとしている

$scope.reset = function() { 
     $scope.application = {}; 
     $scope.PostDataResponse = null; 
     $scope.errors = null; 
     $scope.selectedApplication = null; 
     $scope.application.status = true; 
     $scope.application.version = 1.0; 
     $scope.gridOptions.data.length = 0; 
     $scope.ApplicationSettingsForm.$setPristine(); 
     $scope.ApplicationSettingsForm.$setUntouched(); 
    }; 

入力:

<input type="number" style="font-family: sans-serif" class="form-control" ng-model="application.version" ng-disabled="true" id="Version" name="Version" placeholder="Version..." required> 
個の

どのように種子のページが最初にロードされます。

$scope.application = {}; 
    $scope.application.version = 1.0; 

ページのロードが、私はそこに1を得るが、私はリセット]をクリックしたときに、それはバージョンに戻ります...代わりに期待1.何の私はここで間違っていますか?

答えて

0

reset()関数のコード行の一部が例外をスローしている可能性があります。ほとんどの場合、おそらく$scope.gridOptions.data.length = 0;になる可能性があります。そうでない場合は、他の行に例外がスローされていないかどうかコンソールを確認してください。

reset()関数内の一部の行で例外がスローされる場合は、アプリケーションオブジェクトのバージョンが適切に設定されていない可能性があります。

コードをこれに変更できますか?私はすべての例外を避けることを期待して、いくつかのヌルチェックを追加しました:

$scope.reset = function() { 
     $scope.application = {}; 
     $scope.application.status = true; 
     $scope.application.version = 1.0; 
     $scope.PostDataResponse = null; 
     $scope.errors = null; 
     $scope.selectedApplication = null; 
     if($scope.gridOptions && $scope.gridOptions.data) { 
      $scope.gridOptions.data.length = 0; 
     } 
     if($scope.ApplicationSettingsForm) { 
      $scope.ApplicationSettingsForm.$setPristine(); 
      $scope.ApplicationSettingsForm.$setUntouched(); 
     } 
    }; 
+0

$スコープ.application = {}は、フォームの残りの部分をリセットします;それはそこにある必要があります;)また、これはスコープが1のコントローラです。スコープ継承に入るにはまだ十分ではありません... – RandomUs1r

+0

それ。より多くのコードを提供できる場合は、より深く理解することができます。 – CodeWarrior

+0

リセット機能を完全な状態に更新しました。 Application.statusが正しく動作していません。それは私が$ scope.application = {}でそれらを吹き飛ばしているからですか?しかし、その後、どのように値を設定するのですか?多分どこかに$応募が必要ですか?また、誰が下降したかわからないが、私はその点を復元した。 – RandomUs1r

0

あなたのコードが動作していますが、コントローラー内のオブジェクトとして$scope.applicationを定義する必要があります。

var myApp = angular.module('myApp', []); 
 

 
myApp.controller('FirstCtrl', function($scope) { 
 
    $scope.application = { version: 1.0 }; 
 

 
    $scope.reset = function() { 
 
    $scope.application = {}; 
 
    $scope.application.version = 1.0; 
 
    }; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="myApp" ng-controller="FirstCtrl"> 
 
    <input type="number" style="font-family: sans-serif" ng-model="application.version" placeholder="Version..." required> 
 
    <button type="reset" ng-click="reset()">Clear </button> 
 
</div>

+0

@downvoter:あなたのダウンワードの理由は何ですか? – Mistalis

+0

私はダウンボートしませんでしたが、残念ながらそれを修正しませんでした。私はスニペットが動作しているのを見て、私は完全なリセット機能で私の質問を更新し、問題を見つけるために私の終わりにそこに他のもののいくつかのコメントを開始... – RandomUs1r

関連する問題