Syntaxe d'importation ES6 avec Angular 1.5 UI Router
J'essaie de combiner Angulaire de 1,5, de l'INTERFACE utilisateur du Routeur à l'aide de ES6 importer des modules de syntaxe avec Babel & Webpack.
Dans mon app.js j'ai:
'use strict';
import angular from 'angular';
import uiRouter from 'angular-ui-router';
...
import LoginCtrl from './login/login.ctrl.js'
const app = angular.module("app", [
uiRouter,
...
])
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('login', {
url: '/login',
templateUrl: '...',
controller: LoginCtrl,
controllerAs: 'login'
})
});
Dans login/login.ctrl.js j'ai:
'use strict';
export default app.controller("LoginCtrl", function() {
//code here
});
Quand j'ai commencé mon application j'ai des message d'erreur suivant:
ReferenceError: app is not defined
bundle.js:35422:2
Error: [$injector:modulerr] Failed to instantiate module app due to:
[$injector:nomod] Module 'app' is not available! You either misspelled the module name or forgot to load it.
Et deuxième question. Comment puis-je utiliser le contrôleur: "loginCtrl comme login" syntaxe avec ES6 import/export?
source d'informationauteur karl
Vous devez vous connecter pour publier un commentaire.
Vous faites référence à 'app' variable à l'intérieur de votre "login/login.ctrl.js" mais la variable n'est pas définie (parce que vous importez le contrôleur avant de le définir).
EDIT: de toute façon, chaque module a son propre champ d'application de sorte que vous ne pouvez pas se référer à une variable de module différent de cette façon.
La solution que j'ai dans mon esprit est la suivante:
À l'intérieur "login/login.ctrl.js" créer un nouveau module
Ajouter le module sous la dépendance de votre main 'app' module
Je n'ai pas testé le code, mais je crois que vous pouvez voir ce que je veux dire. Pas sûr de ce que tu veux dire avec la deuxième question, mais
controllerAs
dans l'ES6 devrait fonctionner de la même manière que dans l'ES5.