入力または選択タグの変更をトリガするために$ watchを使用しています。すべてうまくいっていますが、ng-changeディレクティブを使用するウォッチャーの代わりにリファクタリングする必要があります。選択タグは機能していますが、入力タイプの場合は機能していますが、関数は呼び出されません。コントローラでの入力時のng-changeの構文が正しく動作しない
入力ビュー
<div>
<input date-range-picker type="text" ng-model="reviewvm.review.extDate"
ng-change="reviewvm.changed(reviewvm.review.extDate)"
options="{locale:{format: 'MM/DD/YYYY'}, singleDatePicker:true}" />
<span data-ng-click="reviewvm.openExitConfDatePicker()">
<i class="icon-calendar"></i>
</span>
</div>
ビュー選択
<select ng-change="reviewvm.agencyChanged(reviewvm.agency)"
data-ng-model="reviewvm.agency" data-ng-options="agency as agency.agencyName for agency in reviewvm.refAgencies track by agency.id"">
<option value="">Select {{reviewvm.area}} Department or Agency</option>
</select>
機能
reviewvm.changed = changed;
function changed(current, original) {
console.log(current + " - " + original);
}
function agencyChanged(current, original) {
console.log(current + " - " + original);
}
私はSEのための同じアプローチを言ったようにLECTと入力が、入力のために、それは....変更関数内
を行っていませんPlunker
https://plnkr.co/edit/STyQT4SivGuAdzy5ADGl?p=preview
更新
<div data-ng-class="{'not-allowed input-group' : !reviewvm.userReviewAssoc || !reviewvm.editMode, 'input-group' : reviewvm.userReviewAssoc}" data-ng-show="reviewvm.review.actualStartDt">
<input id="extConfDate" class="form-control date-picker" date-range-picker data-ng-disabled="!reviewvm.userReviewAssoc || !reviewvm.editMode" type="text"
ng-model="reviewvm.review.exitConfDt" ng-change="reviewvm.exitConfChanged(reviewvm.review.exitConfDt)"
min="reviewvm.review.actualStartDt" max="reviewvm.currDate" placeholder="mm/dd/yyyy" options="{locale:{format: 'MM/DD/YYYY'}, singleDatePicker:true}" />
<span data-ng-class="{'not-allowed input-group-addon' : !reviewvm.userReviewAssoc || !reviewvm.editMode, 'input-group-addon' : reviewvm.userReviewAssoc}" data-ng-click="reviewvm.openExitConfDatePicker()">
<i class="icon-calendar"></i></span>
</div>
function exitConfChanged(current, original) {
console.log(current)
}
これは私が得た方法であります現在と元のテキストを使用したプルダウンでの作業:
ng-change="reviewvm.reviewTypeChanged(reviewvm.review.reviewType, '{{reviewvm.review.reviewType}}')"
と、コントローラで:
function reviewTypeChanged(original, current) {
if (original !== "") {
original = angular.fromJson(original);
}
console.log(original + " - " + current);
}
そして、これは私が現在および以前の選択が、入力のない取得していますすべてのドロップダウンリストの正常に動作している...
私は多分それはないと思われますこのエラーフォームアンギュラdaterangepickerの関数原因の内側に行く:
TypeError: Cannot read property 'startDate' of null
at Array.<anonymous> (angular-daterangepicker.js:93)
at Object.ngModelWatch (angular.js:23555)
at Scope.$digest (angular.js:14404)
at Scope.$apply (angular.js:14675)
at done (angular.js:9725)
at completeRequest (angular.js:9915)
at XMLHttpRequest.requestLoaded (angular.js:9856)(anonymous function) @ angular.js:11706(anonymous function) @ angular.js:8619$digest @ angular.js:14430$apply @ angular.js:14675done @ angular.js:9725completeRequest @ angular.js:9915requestLoaded @ angular.js:9856
が、多くの人がまだ同じエラーと無修正を持って、私はインターネット上で探していた原因、それを修正する方法がわからない...
'date-range-picker'ディレクティブのコードは何ですか?分離されたスコープを使用していますか?もしそうなら、それは問題を引き起こす可能性があります。 – georgeawg
@Bukic、このplnkrを確認してくださいhttps://plnkr.co/edit/hQlKSlso5kPHqsH27Ksf?p=preview –
@VinayKあなたのプランナーが動作しているのを見て、私はconsole.logで価値を得ています...しかし、私と私の機能に行くことはありません....私は私の質問を更新しました。 – Bukic