Angular Stormpath 注入未知提供程序
Angular Stormpath Injection Unknown Providor
我正在尝试将 angular ui 路由器与 angular 的风暴路径一起使用,但我不断收到未知提供商错误。我的代码如下,
var angular = require("angular");
// app.js
var app = angular.module('app', [require('angular-ui-router'), require("stormpath-sdk-angularjs")]);
app.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('home', {
url: '/',
templateUrl: 'partials/home.html'
})
.state('about', {
url: '/about',
templateUrl: 'partials/about.html'
});
})
.run(function($stormpath){
$stormpath.uiRouter({
loginState: 'login',
defaultPostLoginState: 'home'
});
});
这是错误页面,错误:$injector:unpr
未知提供商
通常您不会以这种方式使用 angular 依赖列表中的 require() 。相反你需要:
var app = angular.module('app', ['ui-router','stormpath']);
确保正确包含两个库。
前面的答案可能是解决方案的一部分。也许您正在使用一种工具来编译您的应用程序,例如 WebPack?这些信息会有用。请注意,Stormpath Angular SDK 在 Angular 命名空间中提供了两个模块,stormpath
和 stormpath.templates
。如果使用 browserify,您可能需要使用 require('dist/stormpath-sdk-angularjs.js')
P.S。我在 Stormpath 工作,如果您想与我们私下分享您的代码,请随时通过 support@stormpath.com 与我们联系。谢谢!
Stormpath 在他们的 module.exports
中使用了错误的模块名称(我在这里提出了一个错误 ~ https://github.com/stormpath/stormpath-sdk-angularjs/issues/80)。
现在,您可以这样做
var angular = require("angular");
require('stormpath-sdk-angularjs');
// app.js
var app = angular.module('app', [
require('angular-ui-router'), // this one is fine
'stormpath',
'stormpath.templates'
]);
事实证明,stormpath sdk 将自身注入 angular。解决方法是在angular.
之后加载库
var angular = require("angular");
var stormpath = require("stormpath-sdk-angularjs");
var app = angular.module('app', [require('angular-ui-router'), "stormpath", "stormpath.templates"]);
app.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
//States Here
})
.run(function($stormpath){
$stormpath.uiRouter({
loginState: 'login',
defaultPostLoginState: 'home'
});
});
这是一个错误 stormpath-sdk-angularjs
,已在版本 0.8.2
中修复。
要使其与 browserify 一起使用,请将这些行添加到您的 package.json
:
"browser": {
"stormpath": "./node_modules/stormpath-sdk-angularjs/dist/stormpath-sdk-angularjs.js",
"stormpath.templates": "./node_modules/stormpath-sdk-angularjs/dist/stormpath-sdk-angularjs.tpls.js"
}
然后像这样要求它:
var angular = require("angular");
var app = angular.module('app', [
require('angular-ui-router'),
require('stormpath'),
require('stormpath.templates')
]);
我正在尝试将 angular ui 路由器与 angular 的风暴路径一起使用,但我不断收到未知提供商错误。我的代码如下,
var angular = require("angular");
// app.js
var app = angular.module('app', [require('angular-ui-router'), require("stormpath-sdk-angularjs")]);
app.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('home', {
url: '/',
templateUrl: 'partials/home.html'
})
.state('about', {
url: '/about',
templateUrl: 'partials/about.html'
});
})
.run(function($stormpath){
$stormpath.uiRouter({
loginState: 'login',
defaultPostLoginState: 'home'
});
});
这是错误页面,错误:$injector:unpr 未知提供商
通常您不会以这种方式使用 angular 依赖列表中的 require() 。相反你需要:
var app = angular.module('app', ['ui-router','stormpath']);
确保正确包含两个库。
前面的答案可能是解决方案的一部分。也许您正在使用一种工具来编译您的应用程序,例如 WebPack?这些信息会有用。请注意,Stormpath Angular SDK 在 Angular 命名空间中提供了两个模块,stormpath
和 stormpath.templates
。如果使用 browserify,您可能需要使用 require('dist/stormpath-sdk-angularjs.js')
P.S。我在 Stormpath 工作,如果您想与我们私下分享您的代码,请随时通过 support@stormpath.com 与我们联系。谢谢!
Stormpath 在他们的 module.exports
中使用了错误的模块名称(我在这里提出了一个错误 ~ https://github.com/stormpath/stormpath-sdk-angularjs/issues/80)。
现在,您可以这样做
var angular = require("angular");
require('stormpath-sdk-angularjs');
// app.js
var app = angular.module('app', [
require('angular-ui-router'), // this one is fine
'stormpath',
'stormpath.templates'
]);
事实证明,stormpath sdk 将自身注入 angular。解决方法是在angular.
之后加载库var angular = require("angular");
var stormpath = require("stormpath-sdk-angularjs");
var app = angular.module('app', [require('angular-ui-router'), "stormpath", "stormpath.templates"]);
app.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
//States Here
})
.run(function($stormpath){
$stormpath.uiRouter({
loginState: 'login',
defaultPostLoginState: 'home'
});
});
这是一个错误 stormpath-sdk-angularjs
,已在版本 0.8.2
中修复。
要使其与 browserify 一起使用,请将这些行添加到您的 package.json
:
"browser": {
"stormpath": "./node_modules/stormpath-sdk-angularjs/dist/stormpath-sdk-angularjs.js",
"stormpath.templates": "./node_modules/stormpath-sdk-angularjs/dist/stormpath-sdk-angularjs.tpls.js"
}
然后像这样要求它:
var angular = require("angular");
var app = angular.module('app', [
require('angular-ui-router'),
require('stormpath'),
require('stormpath.templates')
]);