2014-09-05 3 views
3

Мой код: index.htmlугловые + require.js: Не удалось создать экземпляр модуля

<html ng-app='Arrows'> 
<script data-main="main" src="require.js"></script> 
<div ng-controller="My"> 
    {{status}} 
</div> 

И main.js файл

require(["jquery","underscore","backbone", 
"marionette","angular"], function($ ,_,Backbone,Marionette,angular){ 

     debugger 

     var app = angular.module("Arrows") 
     angular.element(document).ready(function() { 
      angular.bootstrap(document, ['Arrows']); 
     }); 

     app.controller('My', function($scope) { 
      $scope.status = 'hello! Its working!'; 
     }); 
    }) 

У меня есть проблема:

Uncaught Error: [$injector:modulerr] Failed to instantiate module Arrows due to: Error: [$injector:nomod] Module 'Arrows' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

ответ

1

Необходимо создать экземпляр модуля

angular.module('name', []) // this will instantiate the module 

angular.module('name')  // this will not instantiate the module and give you 
          // an error if the previous line has not been called first. 
          // This function can be used to add controllers, services 
          // etc. to the module, for example in another file. 
+0

Я добавил angular.module («Стрелки», []), но тот же результат .... Помогите мне пожалуйста ..... пожалуйста –

+0

Я получаю его работу при добавлении углового моделя («Стрелки», []). http://plnkr.co/edit/ysdNKDXcHB1BBgXwQcIf?p=preview Возможно, проблема связана с необходимостью, основой и т. д. Вам действительно нужны эти рамки при использовании Angular? – knutesten

8

Удалить директиву ng-app из своего html. Вы уже вручную загрузите его.

<script data-main="main" src="require.js"></script> 
<div ng-controller="My"> 
    {{status}} 
</div> 

Этого должно быть достаточно для кода.

Кстати, я бы не использовал Магистральные и угловые в одном приложении.

+0

Я получаю ошибку: Ошибка: [ng: areq] Аргумент «Мой» не является функцией, получил неопределенный –

+0

Можете ли вы подготовить jsfiddle или plunker в качестве игровой площадки? Таким образом, мы можем редактировать и видеть, что не так. – turhanco

+0

Спасибо, он решил это для меня. – Fabii

0

Из моего понимания, это проблема загрузки последовательности, может быть я ошибаюсь, но по тому, что я испытал:

  • HTML-файлы загружаются первый
  • requireJs файл выполняется

Тогда проблема заключается в том, что каждый раз, когда вы используете угловую директиву, разрешается до фактического модуля/контроллера/etc. загружается.

Хитрость bootstraping приложения к документу работает, но для того, чтобы иметь полностью fonctional приложение, вам нужно самозагрузками все вручную, а не с помощью «нг-контроллер» (и других директив).

Для меня это не решение, просто обходное решение, и я уверен, что requireJs может (или должен) делать лучше, так что либо это ошибка requireJs, либо есть другое решение.

Надеюсь, это поможет!

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