0

私のコントローラーには、変数があります:

$scope.myVar = { "id": 13459045, "firstName": "Joe", "lastName": "McCarthy", "createdBy": 0, "status": "active", "dollarValue": 0 } 

私のページには、変数にマッピングされた入力フィールドがあります。

<input ng-model="myVar.id" class="checknumberrange" />

「checknumberrange」クラスは、入力値を解析して入力フィールドとモデルに数値を設定するディレクティブです。このディレクティブの作業中に、変数 $scope.myVar の要素の一部が変数から削除されます。

$scope.myVar = { "firstName": "Joe", "lastName": "McCarthy", "createdBy": 0, "status": "active", "dollarValue": 0 } 

ディレクティブの場合、戻り値が提供されていないときに値が削除されていることがわかりましたが、変数からペアリングを完全に削除するのではなく、そのキーの値を null に設定すると考えるでしょう。これは私のプロジェクトの他の部分で発生しました。入力フィールドに書き込むと値が戻ってきますが (再度削除される可能性があるため)、なぜこれが起こっているのかわかりません。angular 1.2.0 rc3 を使用して、次の html:

<input ng-model="myVar.dollarValue" ng-blur="myVar.dollarValue=myVar.dollarValue.toFixed(2)" />

値を変更することはできません。値を変更するとすぐに変数からペアリングが削除され、入力フィールドにフォーカスを置いてから別の場所にフォーカスを置くと、最初はフィールドが「0」から「0.00」に更新され、2 回目は次のようになります。ペアリングが削除されます。

仕事でこれが起こらないように、ペアリングが削除されている理由を本当に理解したい.

4

1 に答える 1

1

Angular はあなたが入力したものを解析しますが、ng-blurすべての JavaScript を処理することはできません。コントローラー(plnkr)で作成された関数を使用してみてください:

$scope.onBlur = function()
{
  $scope.myVar.dollarValue = Number($scope.myVar.dollarValue).toFixed(2)
}

HTML:

<input ng-model="myVar.dollarValue" ng-blur="onBlur()" />
于 2013-10-31T22:48:38.743 に答える