2016-04-08 7 views
-1

Fehler beim Instanziieren des Moduls marmorApp aufgrund: Fehler: [$ injector: nomod] Das Modul 'marmorApp' 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.

Ich habe fast jeden Beitrag gelesen und durch die Dokumente gesucht, aber meine App wird nicht funktionieren, weil mein Modul nicht geladen wird. Kann jemand Fehler im Code finden, die verhindern, dass er ordnungsgemäß funktioniert?

Index.HTML:

<!DOCTYPE html> 
    <html ng-app="marbleApp"> 
    <head> 
     <title>Marble.com AngularMongo</title> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"/> 
     <!--Import materialize.css--> 
     <link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> 
     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.6/css/materialize.min.css" media="screen,projection"/> 
     <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.3/angular.js"></script> 
     <script src="app.js"></script> 

    </head> 

    <body> 

     {{"anot" + "her test"}} 

     <nav style="background-color: #d56324!important"> 
     <div class="nav-wrapper"> 
      <form action="/cosmicblack" method="GET"> 
      <div class="input-field"> 
       <input id="search" type="search" required placeholder="Search"> 
       <label for="search"><i class="material-icons">search</i></label> 
       <i class="material-icons">close</i> 
      </div> 
      </form> 
     </div> 
     </nav> 
     <br> 

     <div> 
    {{"This is " + "a test!"}} 
    {{materials.name}} 
     </div> 
    <!-- <div ng-controller="repeatCtrl">{{materials.name}}</div> --> 



    <div class="container"> 
    <div class="row"> 


     <div class="col m3" ng-controller='repeatCtrl'> 
      <a href="/cosmicblack"><div class="card"> 
      <div class="card-image small"> 
       <img src="http://marble.com/uploads/materials/499/300X300/thumbnail/Cosmic-Black_APeruB9I056YsF3mZ0sT.jpg"> 
       <span class="card-title" ng-bind="materials.name"></span> 
       </div> 
      </div> 
      </a> 
     </div> 


     </div> 
    </div> 







     <!--Import jQuery before materialize.js--> 

     <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.6/js/materialize.min.js"></script> 


    </body> 
    </html> 

app.js:

var app = angular.module('marbleApp', []); 

app.controller('repeatCtrl', function($scope) { 
    $scope.materials = [ 
     {name: 'Cosmic Black'} 
    ];  
}); 

server.js:

console.log('May Node be with you'); 

var express = require('express'); 
var bodyParser = require('body-parser'); 
var app = express(); 
var mongoose = require('mongoose'); 

mongoose.connect('mongodb://localhost/test'); 
var db = mongoose.connection; 

app.use(bodyParser.urlencoded({extended: true})) 

app.get('/', (req, res) => { 
    res.sendFile(__dirname + '/index.html'); 
}); 



app.get('/cosmicblack', (req, res) => { 
    var cursor = db.collection('materials').find(); 
    db.collection('materials').find({"id": "499"}).toArray(function(err, results) { 
     console.log(results); 
    }); 
    db.collection('materialphotos').find({"material_id": "499"}).toArray(function(err, results2) { 
     console.log(results2); 
    }); 
    res.redirect('/'); 
}); 



app.listen(3000,() => { 
    console.log('Running app.js on 3000'); 
}); 
+0

Ihr Code funktioniert für mich. Ich sehe kein Problem. – Danda

Antwort

0

ich den gleichen Code wie Sie kopiert haben, und es funktioniert für mich. Werfen Sie einen Blick auf diese bin. Die übliche Ursache für den Fehler nomod in eckig ist, dass entweder angular.js oder eine der Abhängigkeiten Ihrer App nicht korrekt geladen wurde, was dazu führt, dass Ihr App-Modul nicht korrekt geladen wird

+0

Es funktioniert mit den Ausdruckstests, aber wenn der Code den ng-controller = "repeatCtrl" trifft, was materials.name vom $ scope-Objekt wiedergeben soll, tut es das nicht. Es zeigt nicht nur den Namen, sondern der Ausdruck erscheint überhaupt nicht. – MattP

+0

Ihr Fehler war, dass Sie versuchten, auf '.name' vom Array' $ scope.material' zuzugreifen. Versuchen Sie es mit '{{materials [0] .name}}'. Ich habe den Papierkorb mit demselben Code aktualisiert –

+0

Wenn Sie den Code ausführen, öffnen Sie ihn einfach in Chrome? Ich denke, es könnte ein Problem mit meinem node.js/express-Server geben. Wenn ich meinen Server starte und zu localhost gehe, funktioniert der Code nicht. Aber wenn ich es einfach im Browser direkt öffne, funktioniert es gut. Irgendeine Idee, warum das der Fall wäre? – MattP

Verwandte Themen