我正在尝试从 Controller 调用服务上的函数,以便更新我网站上的主题,具体取决于我所在网站的提供商部分。
我的服务,
MyApp.service('ThemeService', function() {
var ThemeProvider = 1;
var ThemeArea = "NotSet";
this.SetVariables = function() {
switch (ThemeProvider) {
case 1:
default:
ThemeArea = "Themes/Default";
break;
case 2:
ThemeArea = "Themes/Provider2";
break;
}
return ThemeProvider;
};
return {
ThemeProvider: ThemeProvider,
getThemeArea: ThemeArea,
};
});
我的 Controller
$scope.loadData = function (input) {
ThemeService.ThemeProvider = 2;
ThemeService.SetVariables();
};
我的想法是,在 Controller 内部,可以在设置“ThemeProvider”后调用函数“SetVariables”,以更改“ThemeArea”,但我无法弄清楚如何从 Controller 调用函数“SetVariables” .
当我尝试时,我收到错误
TypeError: Object doesn't support property or method 'SetVariables'
最佳答案
您没有返回SetVariables
,请参阅服务定义底部有一个返回语句,它应该包含您想要访问的所有内容。
return {
ThemeProvider: ThemeProvider,
getThemeArea: ThemeArea,
SetVariables: SetVariables
};
关于javascript - 我如何在 AngularJS 上从 Controller 调用服务上的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46467299/