Почему контроллеры создаются 2 раза в моем приложении AngularJS + RequireJS?

0

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

У меня странная проблема. Я создал свой тестовый контроллер, и у меня возникла проблема: инициализация контроллера срабатывает два раза.

Во-первых, полный код доступен здесь, в GitHub (подождите, не нажимайте на меня, я объясню все ниже).

Итак, проблема в файле myCtrl.js. Вот код этого файла:

define(['angular'], function (angular) {
  var module = angular.module('main.myModule', []);
  module.controller('main.myCtrl', function ($scope) {
    console.log($scope.$id);
    $scope.bob = function () {
    }
  })
});

Он включен в основные/контроллеры/контроллеры.js следующим образом:

define(['app', 'main/controllers/myCtrl'], function (app) {
  var module = angular.module('main.controllers', ['main.myModule']);
});

Этот файл включен в main.js по этому коду:

angular.module('main', ['ngRoute', 'main.services', 'main.controllers', 'main.directives']);

И main.js включен в app.js:

var app = angular.module('myApp', ['ngRoute', 'main', 'common']);

Итак, я случайно заметил, что определение функции в контроллере myCtrl срабатывает два раза. Я поставил console.log и увидел это:

Изображение 174551

Не могли бы вы объяснить мне, почему это происходит? Почему контроллер инициализируется два раза?

Кроме того, у меня есть это у ng-inspector:

Изображение 174551

Таким образом, одна область создается как дочерняя для другой области. Обратите внимание, что область с id 3 имеет правильное имя контроллера.

Теги:
requirejs

1 ответ

1
Лучший ответ

Если вы используете ng-route для регистрации контроллеров и привяжите их к представлениям, не добавляйте их снова, используя атрибуты в ваших html файлах.

  • 0
    «Вы можете принять ответ через 7 минут». Подождите немного, пожалуйста :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню