我是角度js的新手我试图在配置中注入工厂,但它显示未找到模块
工厂代码
var app=angular.module('app',['ui.router','angular-jwt','ngResource','angularValidator','satellizer']);
app.factory('AUTH_SERVICE', function ($auth,$state,$q) {
var auth={};
auth.isloggedin=function() {
var defer = $q.defer();
if($auth.isAuthenticated()){
defer.resolve();
}
else
{
$state.go('login');
defer.reject();
}
return defer.promise;
}
return auth;
});
配置代码是
app.config(['AUTH_SERVICE','$authProvider','$stateProvider', '$urlRouterProvider',function(AUTH_SERVICE,$stateProvider, $urlRouterProvider,$authProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('home',{
url:'/',
templateUrl:'pages/home.html'
})
.state('login',{
url:'/login',
templateUrl:'pages/login.html',
controller:'loginCtrl'
})
.state('register',{
url:'/register',
templateUrl:'pages/register.html',
controller:'registerCtrl'
})
.state('dashboard',{
url:'/Dashboard',
templateUrl:'pages/dashboard.html',
controller:'dashctrl',
resolve:{
skiplogin: _skiplogin
}
})
function _skiplogin(AUTH_SERVICE){
return AUTH_SERVICEAUTH_SERVICE.isloggedin();
}
}]);
但显示错误
angular.js:
38未捕获错误:[$injector:modulerr]
http://errors.angularjs.org/1.5.8/ $注射器/ modulerr P0 =应用&安培; P1 =错误%3A%20%... ocalhost%2Faccoex%2Fbower_components%2Fangular%2Fangular.min.js%3A39%3A319)
答案 0 :(得分:3)
您无法在app.config
中注入app.config
个对象,因为它无法确定它们是否已正确加载。
在Consts
中,您只能注入Providers
和provider
。
来自文档
模块是配置和运行块的集合 在引导过程中应用于应用程序。在其中 最简单的形式模块由两种块的集合组成:
配置块 - 在提供商注册期间执行 和配置阶段。只能注入提供者和常量 到配置块。这是为了防止意外实例化 服务完全配置之前的服务。
运行块 - 在创建并使用注入器后执行 启动应用程序。只有实例和常量才可以 注入运行块。这是为了防止进一步的系统 在应用程序运行时配置。
查看app.config
here,您可以在public partial class Form1 : Form
{
private SynchronizationContext Context = SynchronizationContext.Current;
public Form1(string[] args)
{
InitializeComponent();
this.Hide();
Microsoft.Office.Interop.PowerPoint.Application pptApplication = new Microsoft.Office.Interop.PowerPoint.Application();
Presentation ppt = pptApplication.Presentations.Open(args[0], MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse);
foreach (Slide slide in ppt.Slides)
{
var count = 0;
slide.Export(@"C:\TestOutputs\slide" + count + ".png", "png", 1920, 1080);
count++;
}
this.Close();
return;
}
}
中配置服务。
答案 1 :(得分:1)
在配置
之后加载时,您无法在配置中注入工厂angularjs应用程序加载如下:
运行
配置
实例化工厂或服务
控制器