Question

Je sais qu'il existe déjà des questions similaires sur ce sujet, mais d'une manière ou d'une autre, aucune d'entre elles n'a aidé.Je souhaite utiliser angulaire.js dans un projet qui utilise requirejs et Typescript.

J'ai un module dans lequel j'utilise angulaire pour créer un module de service :

/// <reference path="../../../typings/angularjs/angular.d.ts" />
...
var services = angular.module('services', []);
...
export = services;

Ce code se compile sans erreur, mais dans le fichier js créé, il n'y a pas de dépendance angulaire.js :

define(["require", "exports"], function(require, exports) {
...
}

Et lorsque j'exécute l'application, le navigateur se plaint :Erreur de référence non interceptée :angulaire n'est pas défini

Je suppose que d'une manière ou d'une autre, je devrais importer l'angulaire en plus de le référencer, mais aucun des chemins que j'ai essayés ne fonctionne.

Voici ma configuration require.js, au cas où cela serait nécessaire :

require.config({

    paths: {
        angular: '../lib/angular/angular',
        ...
    },
    shim: {
        angular : {exports : 'angular'},
        ...
    }
)}

Pouvez-vous m'aider, qu'est-ce qui manque ici ?Merci.

Était-ce utile?

La solution

Avez-vous essayé d'ajouter ce qui suit au sommet de votre fichier

 /// <amd-dependency path="angular"/>

Ceci devrait rendre le compilateur TS Ajouter angular à la liste de définition.

Autres conseils

Lorsque vous utilisez un commentaire de référence :

/// <reference path="../../../typings/angularjs/angular.d.ts" />

Vous dites au compilateur "Je veillerai à ce que cette dépendance soit disponible au moment de l'exécution".

Si vous souhaitez que le module soit chargé, vous devez plutôt utiliser une importation...

import angular = require('angular');

La manière de procéder sans configuration zéro consiste à placer le angular.d.ts fichier à côté du fichier réel angular.js fichier, donc le chemin que vous spécifiez dans l'instruction d'importation est le même dans les deux cas - sinon, utilisez votre configuration require pour modifier le chemin.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top