私のディレクティブ使用コード
<input-select ng-model="someModel" ng-change="someFunction()"
options="countries"></input-select>
私のディレクティブコード
.directive('inputSelect', function () {
return {
templateUrl: 'someTemplate.html',
restrict: 'E',
scope: {
ngModel: '=',
ngChange: '='
}
};
});
私のディレクティブテンプレート
<select
ng-model="ngModel" ng-init="ngModel "
ng-options="option[optionId] as option[optionName] for option in options"
ng-change="ngChange">
</select>
したがって、選択した項目が変更されると、関数someFunction()
は無限に呼び出されます(変更は一度だけ行われますが)、someFunction()
getが一度だけ呼び出されるようにするために何を変更する必要がありますか(someFunction()
コントローラーのスコープ内の関数です)どのディレクティブが使用されているか)
[私が使用してみました&
と@
ngChangeのスコープタイプのため、somefunction()
これらを使用した場合は解雇されません。]
あなたは使用する必要があります&
あなたのようなそのメソッドを呼び出すことができ発現のためのマークアップから使用されているngChange()
代わりにngChange
のみ
マークアップ
<select
ng-model="ngModel" ng-change="ngChange()"
ng-options="option[optionId] as option[optionName] for option in options">
</select>
コード
scope: {
ngModel: '=',
ngChange: '&'
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加