инжектиране на $ scope и $ element в контролерработи в повечето места в моя проект, но в една го прави "т. Там не 'т изглежда да е някаква причина, че не трябва да работи в този случай. премахване, останалата част от контролера работи добре, но в този конкретен контролер, ако се инжектира, получавам следната грешка на конзолата: angular.js: 10072 [unknownService-unhandledError] Възникна необработена грешка: [$ injector: unpr] Неизвестен доставчик: $ elementProvider <- $ element
angular.module("app").controller(controllerId, ["$scope", "$element", "MyApp", controller]);
function controller($scope, $element, myApp) {
Посещавайки го, изглежда има няколко доклада за това, но няма реален отговор, мога да го заобиколя, просто искам да го разбера.
Отговори:
2 за отговор № 1Най- $compile
услуга инжектира $element
в контролери като местен, ngRoute
не.
От $compile
Документи:
контрольор
Функция на конструктора на контролера. Контролерът е инстанциран преди фазата на предварителното свързване и може да бъде достъпен от други директиви (виж атрибута require). Това позволява на директивите да комуникират помежду си и да увеличават поведението си. след местните жители:
$scope
- Текущ обхват, свързан с елемента$element
- Текущ елемент$attrs
- Текущи атрибути обект за елемента$transclude
- функция за свързване, която е свързана предварително с правилния обхват на включване:
-- AngularJS Пълнофункционален API - контролер
От ngRoute
Документи:
locals
Карта на местните жители, която се използва от $ контролер услуга за инстанциране на контролер. Най-
locals
съдържа разрешените стойности наresolve
карта. Освен товаlocals
съдържа също:
$scope
- Текущият обхват на маршрута.$template
- HTML шаблона на текущия маршрут.Най-
locals
ще бъде присвоен на обхвата на маршрута "s$resolve
Имот. Можете да замените името на собствеността, използвайкиresolveAs
в определението на маршрута. виждам $ routeProvider за повече информация.
-- AngularJS ngRoute $ route API Справочник