#angularjs #brunch
#angularjs #бранч
Вопрос:
Предисловие: поскольку я новичок как в AngularJS, так и в Бранче, я хочу изучить основы, а также создать и применить с нуля (т. Е. Из dead-simple
скелета бранча). Я хорошо знаю, что существуют скелеты, которые специально предназначены для начальной загрузки приложения AngularJS / Brunch, и я изучал их код, чтобы выяснить, что «заставляет их работать». Но, будучи новичком, я не вижу решения своей проблемы…
Проблема: пока я добавляю ng-app
(без какого-либо значения) к html
элементу, AngularJS работает просто отлично. Но как только я добавляю значение (т.Е. ng-app="MyApp"
) К этому атрибуту, AngularJS перестает работать. Консоль в Chrome сообщает мне, что она обнаружила «Неперехваченный объект» в строке 1695 angular.js .
Похоже, что javascript, добавленный Brunch, вызывает это: если я удалю код на самом верху, сгенерированный Brunch в app.js файл общей папки, опять же, это работает. Но очевидно, что это не может быть решением моей проблемы.
Вот код моего app/assets/index.html
:
<html ng-app="myApp">
<head>
<title>Test</title>
</head>
<body>
<script src="app.js"></script>
</body>
</html>
Это код в моем app/app.coffee
(который объединен с кодом Brunch и AngularJS в результирующем public/app.js
):
angular.module("myApp", [])
Вопрос: чего мне не хватает? Я вижу, что в конкретных скелетах index.html файл содержит a <script>require('MyApp')</script>
, но его добавление не решает проблему.
Любой намек для новичка, такого как я, очень ценится. Спасибо!
Комментарии:
1.Спасибо за подсказку. На самом деле, это была опечатка в моих фрагментах, и она есть
ng-app="myApp"
(одинаковая как в файлах html, так и в файлах coffee). Я исправил это в своем вопросе.
Ответ №1:
Хорошо, я наконец понял это. Действительно, должен быть дополнительный <script>require('app');</script>
фрагмент. Однако убедитесь, что параметр для этого require()
вызова соответствует имени файла, в котором создается ваше приложение Angular.
Пример:
- Ваш HTML-тег использует
ng-app="myAwesomeApp"
. Соответствующий код Javascript должен ссылаться на этоangular.module("myAwesomeApp", [])
. - Если ваш файл Javascript (в котором создается модуль Angular) просто вызывается
app.js
, то соответствующий<script>require('app');</script>
должен отражать это. Если вы также решите назвать свой файлmyAwesomeApp.js
Javascript, сопоставьте его с<script>require('myAwesomeApp');</script>
.