2015-06-24 11 views
16

Dies ist sehr frustrierend, ich benutze eine mean.js yeoman generierte Anwendung und kann nicht scheinen Material läuft. Ich lese eine weitere Stackoverflow-Frage zum Thema Angularjs with material design Failed to instantiate module ngMaterial. Also habe ich meine bower.json-Datei aktualisiert und eine bower update und bower install ausgeführt. Es funktioniert immer noch nicht. Während des Bower-Updates gab mir Bower diese Nachricht Unable to find a suitable version for angular, please choose one:, aber ich wählte immer eine Angular-Version 1.3.0 oder höher.
Heres eine Kopie meiner bower.json:
Installieren von eckigem Material, "Fehler beim Instanziieren des Moduls ngMaterial" obwohl ich eckige Version 1.3.0 verwende

{ 
    "name": "colign", 
    "version": "0.0.1", 
    "description": "Full-Stack JavaScript with MongoDB, Express, AngularJS, and Node.js", 
    "dependencies": { 
    "bootstrap": "~3", 
    "angular": "~1.3", 
    "angular-resource": "~1.3", 
    "angular-mocks": "~1.3", 
    "angular-bootstrap": "~0.11.2", 
    "angular-ui-utils": "~0.1.1", 
    "angular-ui-router": "~0.2.11", 
    "angular-material": "~0.10.0" 
    } 
} 

Heres die Konsole Fehlermeldung: Fehler: [$ Injektor: modulerr] Nicht bestandene Modul ngMaterial aufgrund instanziiert: Fehler: [$ Injektor: nomod ] Modul 'ngMaterial' ist nicht verfügbar! Sie haben entweder den Modulnamen falsch geschrieben oder vergessen, ihn zu laden. Wenn Sie ein Modul registrieren, stellen Sie sicher, dass Sie die Abhängigkeiten als zweites Argument angeben.

Angular config.js Datei:

'use strict'; 

// Init the application configuration module for AngularJS application 
var ApplicationConfiguration = (function() { 
    // Init module configuration options 
    var applicationModuleName = 'colign'; 
    var applicationModuleVendorDependencies = ['ngResource', 'ui.router', 'ui.bootstrap', 'ui.utils', 'ngMaterial']; 

    // Add a new vertical module 
    var registerModule = function(moduleName, dependencies) { 
     // Create angular module 
     angular.module(moduleName, dependencies || []); 

     // Add the module to the AngularJS configuration file 
     angular.module(applicationModuleName).requires.push(moduleName); 
    }; 

    return { 
     applicationModuleName: applicationModuleName, 
     applicationModuleVendorDependencies: applicationModuleVendorDependencies, 
     registerModule: registerModule 
    }; 
})(); 

Vielen Dank im Voraus für jede Hilfe!

+0

Haben Sie "ngMaterial" in Ihre Modulabhängigkeit aufgenommen? – arman1991

+1

hat er sicher wegen der Fehlermeldung gemacht! –

+0

Können Sie Ihre HTML-Skript-Tags bereitstellen? Vielleicht haben Sie einfach vergessen, notwendige Script-Tags hinzuzufügen. –

Antwort

33

Eckiges Material, ngMaterial, hat auch eine Abhängigkeit von ngAria und ngAnimate. Sie müssten sie laden.

angular.module('ngMaterial', ["ng","ngAnimate","ngAria", ...other material sub modules 

Man konnte es von angular aria und angular animate herunterladen. Verwenden Sie die richtige Version von diesen basierend auf Ihrer eckigen Version.

Auch das Hinzufügen der Skripte im Projekt ist nicht genug, Sie müssen sie auch in Ihrem HTML-Code laden. Laden Sie sie auch vor ng-material Skript.

+1

Problem gelöst! –

+2

Eigentlich müssen Sie keine Abhängigkeiten für angular-aria und angular-animate in Ihrer Bower-Datei hinzufügen, da sie Abhängigkeiten von eckigem Material sind, und bower wird es herausfinden –

+0

great help.thanks – ritesh

Verwandte Themen