conrollerAs 構文を使用してコントローラーを拡張しようとしています。親コントローラーと子コントローラーが同じスコープで定義されていないため、親コントローラー ( BaseController
) をサービスに配置します。
angular.module('myApp').factory('BaseController', function() {
var BaseController = function(fooService, barService) {
// base controller constructor logic
}
BaseController.prototype = {
// base controller methods
}
return BaseController;
});
次に、次のように使用します。
var ChildController = function(BaseController, fooService, barService) {
BaseController.apply(this, [fooService, barService]);
}
var BaseController = angular.injector(['myApp']).get('BaseController');
ChildController.prototype = Object.create(angular.extend(BaseController.prototype, {
fooMethod: function() {
// do stuff
}
}));
angular.module('myApp').controller('ChildController', ChildController);
ChildController
uiルーター状態で使用しています。状態テンプレートが読み込まれず、コンソールに次のエラーが表示されます。
Resource for page controller is not defined <div class="ng-scope" ui-view="foo-view">
何か案は?