私は状態の中にコントローラを作成しました。 angular.extend(self, {})
の角度(1.5)のコンポーネントとサービスには、通常、この種の表記法が使用されます。 self.criteria
は、ブラウザ呼び出しself.getAgencies()
を初期化し、例外を返すされているときに、ここでコントローラ内の角度uiルータ機能は機能ではありません
私の問題は、次のとおりです。
Error: self.getAgencies is not a function
(function (app) {
'use strict';
app.config(function ($stateProvider) {
$stateProvider.state('app.invoice', {
url: '/invoice'
abstract: true,
template: '<ui-view></ui-view>'
})
.state('app.invoice.list', {
url: '/list?allMyParam',
template: '<invoices criteria="$ctrl.criteria"></invoices>',
controllerAs: '$ctrl',
controller: function ($location) {
var self = this;
angular.extend(self,{
criteria: {
agencies: self.getAgencies()
},
getAgencies: function() {
if ($location.search().agencies) {
return undefined;
} else {
return ['foo', 'blah'];
}
}
});
}
});
});
})(angular.module('module', []));
私は基準プロトタイプの初期化の上にgetAgencies()関数を置くが、それは何も変更しませんでした。
は、私はこのようなangular.extend(self, {})
のgetAgencies()
外を移動することによってそれの外に出た:
var self = this;
var getAgencies = function() {
if ($location.search().agencies) {
return undefined;
} else {
return ['foo', 'blah'];
}
}
angular.extend(self, {
criteria: {
agencies: getAgencies()
}
});
私のコードは、それが私のためokですので、働いているが、私はときに、このコール私のself.getAgencies()
が動作しない理由を理解したいと思いますコントローラーコンポーネントの内部でうまく動作し、できればそれを改善します。
角度1.5.0のangle-ui-router 0.2.18を使用しています。 ありがとうございます。
この説明は素晴らしいです、どうもありがとうございました。 :) – Berhthun