Angular スコープではなく JavaScript 自体で、スコープに頭を悩ませています。
私はそれが次のようなものfactory
と呼ばれています:chartParsingHelpers
angular.module('myApp')
.factory('chartParsingHelpers',['dateUtils', function(dateUtils){
return {
getInitArray : function(){
return [ 'Stuff', 'Stuff 2' ];
},
doFancyStuff : function (data){
var initArray = this.getInitArray();
}
};
}]);
どこにでも注入chartParsingHelpers
して呼び出すdoFancyStuff
と、うまく機能します。ただし、コード構造を共有しているため、派手なチャートの構成が必要であり、ディレクティブとすべての友人の周りでその構成を共有するのは素晴らしいと思うので、次のようなものを作成しました。
angular.module('visits')
.factory('ChartTypes',['dateUtils', 'chartParsingHelpers', function(dateUtils, chartParsingHelpers){
return {
config : [
{
name : 'Chart 1',
xAxisFormatter : dateUtils.getFullHour,
parseMethod : chartParsingHelpers.doFancyStuff
}
]
};
}]);
私の計画はChartTypes
、Controller とディレクティブに (今のところ) 挿入することですが、次のエラーが表示されます。
TypeError: Object #<Object> has no method 'getInitArray'
thenの値を調べてみるとthis
...まあ、オブジェクト自体の値ですname
などxAxisFormatter
...
どうすればこれにアプローチできますか?これは正しい方法ですか?