2016-04-08 3 views
-1

Не удалось создать модуль marbleApp из-за: Ошибка: [$ инжектор: nomod] Модуль 'marbleApp' недоступен! Вы либо ошибочно написали имя модуля, либо забыли загрузить его. Если регистрация модуля гарантирует, что вы укажете зависимости в качестве второго аргумента.

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

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

Ваш код работает на меня. Я не вижу никаких проблем. – Danda

ответ

0

Я скопировал тот же код, как ваша, и она работает меня. Посмотрите на это bin. Обычная причина ошибки nomod в том, что либо angular.js, либо любая из зависимостей вашего приложения загружена неправильно, потому что ваш модуль приложения не загружен правильно

+0

Он работает над тестами выражения, но затем, когда код попадает в ng-controller = "repeatCtrl", который должен отображать material.name из объекта $ scope, это не так. Он не только не показывает имя, но и выражение вообще не появляется. – MattP

+0

Ваша ошибка заключалась в том, что вы пытались получить доступ к '.name' из массива' $ scope.materials'. Попробуйте использовать '{{materials [0] .name}}'. Я обновил корзину с таким же –

+0

Когда вы запускаете код, вы просто открываете его в Chrome? Я думаю, что может быть проблема с моим узлом node.js/express server. Когда я запускаю свой сервер и перехожу на localhost, код не работает. Но когда я просто открываю его в браузере напрямую, он работает нормально. Любая идея, почему это так? – MattP

Смежные вопросы