AngularJSでオーバーライドするコントローラに問題があります。それはUiCoreController
から呼び出されますが、calculatePremium()
は、より記述UiAskController::calculatePremium()
によって呼び出されていない - 私は(ng-change
ディレクティブで)テンプレートからvalidatePremium()
メソッドを呼び出すとAngularJSのメソッド多型/継承1.6
function UiCoreController($scope, ...) {
'use strict';
angular.extend(vm, {
validatePremium: validatePremium
}
function validatePremium() {
console.log('validate premium in core controller');
// validation logic
vm.calculatePremium();
}
function calculatePremium() { ... }
}
function UiAskController($rootScope, $scope, $controller) {
'use strict';
var vm = this;
var core = $controller('UiCoreController', { $scope: $scope });
angular.extend(this, core);
angular.extend(vm, {
...
}
function calculatePremium() { ... }
}
:
は、ここで問題にしています。
validatePremium()
の全文をUiAskController
にコピーして貼り付けた場合にのみ動作しますが、コードの複製が好きなようです。
誰でもJavaのようなコードでcalculatePremium()
への呼び出しを達成するのに役立つでしょうか?
コードの保守を簡単に作ることができ、すべてのデータ操作シングルトンであるが、それでも私はで問題を解決する方法を知っていただきたいと思います主な話題。 – mlewandowski
@mlewandowskiよく、ポリモルフィズムの同様の動作を探しているならば。 Javaのような継承 - 短い答え - いいえ。私は答えを更新した –