1

Я пытаюсь использовать угловой ui-маршрутизатор со штормовой дорожкой для углового, но я продолжаю получать неизвестную ошибку поставщика. Мой код выглядит следующим образом,Угловая вставка штормового канала Неизвестный провидор

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' 
    }); 
}); 

А вот страница ошибки, Error: $injector:unpr Unknown Provider

+0

Я бы сказал, что проблема здесь ~ https: //github.com/stormpath/stormpath-sdk-angularjs/blob/master/dist/stormpath-sdk-angularjs.js#L12. Они использовали неправильное имя в своих 'module.exports' – Phil

ответ

1

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' 
]); 
+0

Благодарим за сообщение об ошибке - исправлена ​​в последней версии: https://github.com/stormpath/stormpath-sdk-angularjs/pull/81 –

+0

Почему downvote? – Phil

+0

Idk, я не сделал downvote: / –

0

Как правило, вы не используете требуют() в списке угловых зависимостей таким образом. Скорее вам понадобятся:

var app = angular.module('app', ['ui-router','stormpath']); 

Убедитесь, что обе библиотеки включены правильно.

+1

Я пользуюсь браузером, который работал только для ui-router, поэтому я предполагаю, что он действителен. Также я посмотрел на пакет stormpath, в котором содержался файл index.js, что заставляет меня предположить, что он может быть включен. Я предполагаю, что есть некоторая проблема с моей структурой аргументов для функции запуска. –

+1

Я вижу это. Попробуйте просто не использовать require for stormpath, а затем просто поместите '' stormpath'' в зависимость от модуля и посмотрите, что произойдет. –

0

Предыдущий ответ, вероятно, является частью решения. Возможно, вы используете инструмент для компиляции своего приложения, такого как WebPack? Эта информация была бы полезна. Обратите внимание, что Stormpath Angular SDK предоставляет два модуля в угловом пространстве имен, stormpath и stormpath.templates. Если вы используете браузер, вам может потребоваться использовать require('dist/stormpath-sdk-angularjs.js')

P.S. Я работаю по адресу Stormpath, вы можете связаться с нами через [email protected], если хотите поделиться своим кодом с нами. Благодаря!

+0

Почему у вас есть 'module.exports = 'ui.router'' в [' dist/stormpath-sdk-angularjs.js'] (https://github.com/stormpath/stormpath-sdk-angularjs/blob/master /dist/stormpath-sdk-angularjs.js#L12)? – Phil

0

Как получается, stormpath SDK внедряется в угловой. Решение состоит в том, чтобы загрузить библиотеку после углового.

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' 
    }); 
}); 
1

Это была ошибка 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') 
]);