2014-11-14 2 views
0

Я использовал angular-seed в качестве стартового проекта, и хотя он изменил структуру своего приложения за последний месяц или около того, я решил взглянуть на angular-sprout.Функция Angular-Sprout: module.controller() не определена; не удалось добавить контроллер

Угловой проростка не имеет обновленной страницы индекса-асинхронизации, поэтому я решил развить код и работать над ним. У меня есть все, что подключено правильно, но теперь, когда я пытаюсь добавить контроллер (с помощью функции module.controller(), я получаю ошибку о том, что module.controller не определена.

Когда я вхожу angular.module('myModule') к консоли на моей странице index-async.html, Я получаю угловой объект с правильными методами - filter(), service(), provider() и т.д. - но controller не существует:

module Object { 
    _invokeQueue: Array[0], 
    _runBlocks: Array[0], 
    requires: Array[0], 
    name: "application.controllers", 
    provider: function…} 
    _invokeQueue: Array[0] 
    _runBlocks: Array[0] 
    config: function(){c[d||"push"]([a,b,arguments]);return g} 
    constant: function(){c[d||"push"]([a,b,arguments]);return g} 
    directive: function(){c[d||"push"]([a,b,arguments]);return g} 
    factory: function(){c[d||"push"]([a,b,arguments]);return g} 
    filter: function(){c[d||"push"]([a,b,arguments]);return g} 
    name: "application.controllers"provider: function(){c[d||"push"]([a,b,arguments]);return g} 
    requires: Array[0]run: function (a){d.push(a);return this} 
    service: function(){c[d||"push"]([a,b,arguments]);return g} 
    value: function(){c[d||"push"]([a,b,arguments]);return g} 
    __proto__: Object 
} 

(к сожалению о страшном форматировании постараюсь, чтобы получить лучшую консоль копию..)

При входе controller из индекса Асинхр:

controller undefined details-controller.js:13 

Это происходит, когда я запускаю страницу индекса асинхронной. Тем не менее, на обычной странице индекса controller определяется правильно и дает мне угловой метод:

controller function() { 
    invokeQueue[insertMethod || 'push']([provider, method, arguments]); 
    return moduleInstance; 
} details-controller.js:13 

Кто-нибудь работать в этом раньше? Для чего это стоит, кажется, что controller - единственный метод модуля, который мне не хватает, и я совершенно не понимаю, почему это может быть.

ответ

0

Как выясняется .... Я решил проверить версию углового погрузчика, который я использовал. По-видимому, угловой загрузчик v1.0.0rc1, похоже, вызывает эту ошибку, даже если я использую эту версию AngularJS. Я обновил загрузчик до более поздней версии, которая по некоторым причинам устраняет проблему.

Следует отметить, что с самим кодом не было проблем. Как выясняется, согласно documentation, загрузчик переопределяет angular.module(), который, кажется, является корнем проблемы, которую я испытал.

Для этого мне пришлось клонировать угловое семя и запустить npm run update-index-async, чтобы получить последнюю версию кода загрузчика. Копирование этого в проект прорастания, похоже, устранило проблему для Angular 1.0. (Теперь, чтобы получить эту работу с последней версией Angular.) Если вы используете тег сценария для загрузчика (не вставляя его непосредственно на страницу html), скорее всего, вы можете просто взять последнюю версию и связать ее с ваш документ.

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