チェックボックス(手動)がチェックされるたびに実行されるng-change内の関数を持っています。事前チェックボックスのロード時に変更機能を実行する
ここでは、ロード時にチェックボックスを事前にチェックし、ng-change内の関数を実行時にもロードしたいと考えています。
これを達成するために私が取ることのできるアプローチは何ですか?
チェックボックス(手動)がチェックされるたびに実行されるng-change内の関数を持っています。事前チェックボックスのロード時に変更機能を実行する
ここでは、ロード時にチェックボックスを事前にチェックし、ng-change内の関数を実行時にもロードしたいと考えています。
これを達成するために私が取ることのできるアプローチは何ですか?
あなたは、あなたのモデルが自動的にそれを行いますことを、言う
$ scope.customer =顧客をする必要はありません。
<input type='checkbox' ng-model='customer.active' /> Is Active
それはあなたにも負荷にし、onChangeイベント時にトリガされる機能を持つようにしたい場合は、あなたが
ディレクティブNG-のinitを使用することができ、自動的に
... OPを除いて実際にはngChangeのメソッドを呼び出す必要がありますが、これはあなたの解決策ではカバーしません。 – dfsq
世話をしますあなたのスコープに接続されたonLoadとonChange関数を作成してください:
$scope.onLoad = function(params) {
// do some init functionality and call onChange functionality
onChange();
}
$scope.onChange = function(value) {
// do function when a combobox is chaned
}
HTMLテンプレートでは、これらのメソッドをバインドする必要があります
<div ng-init="onLoad()">
<input type='checkbox' ng-model='someModel' ng-change="('1')"/> Is one
<input type='checkbox' ng-model='someModel' ng-change="('2')"/> Is two
<input type='checkbox' ng-model='someModel' ng-change="('3')"/> Is three
</div>
ng-change
角度ドキュメントhere上に述べたように、入力は、ユーザによって変更されていない限り実行されません。問題は、手動で変更をトリガーできることですが、一般的には示唆されておらず、dirty way and terrible practiceとみなされます。ウォッチャーを追加してモデルに加えられた変更を検出するのが適切です。
$scope.$watch("myModel", function(newValue, oldValue){
// do something
});
手動で変更をトリガする方法の例がありますか? –
更新しました – Akis
'ng-init'?何か試しましたか? – ajmajmajma
ng-initは、関数を初期化するために使用した最初の指令です。しかし、期待された結果は返されませんでした。 ng-init以外の方法があるかどうか疑問に思っていました。 –
コントローラまたは指令を使用していませんか?なぜあなたがng-changeで呼び出した関数を、コントローラーのinit/directiveリンク上のJSから直接呼び出すことができないのか分かりません。 'ng-change =" update() "' - > 'scope.update(); //コントローラーで – casraf