我对范围有些头疼,不是 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
控制器和指令(现在),但随后我收到此错误:
TypeError: Object #<Object> has no method 'getInitArray'
如果我查看this
then 的值...嗯,它是对象本身的值name
,xAxisFormatter
等等...
我怎么能接近这个?这是正确的方法吗?