2015-10-11 4 views
0

Что не так?angularjs run named function

(function() { 
    'use strict'; 

    angular 
     .module('app') 
     .run('pageTitle', pageTitle); 

    function pageTitle($rootScope, $http) { 
     $rootScope.$on('$routeChangeSuccess', function (event, current, previous) { 
      $rootScope.title = current.$$route.title; 
     }); 
    } 

})(); 

I'm получаю эту ошибку

Ошибка: нг: areq

Bad Довод

Аргумент 'п' не является функцией, есть строка

ответ

1

Согласно ответу Монсефу Хассейн-бея, .run() принимает только один аргумент.

Вам также необходимо ввести $rootScope и $http в вашу функцию или вы столкнетесь с дополнительными проблемами. Поместите следующую линию над вашей функцией pageTitle:

pageTitle.$inject = ['$rootScope', '$http']; 
+0

благодарит за советом. должен ли я делать это для каждой функции? – handsome

+0

Только там, где функция требует инъекции зависимостей. Если вы не передаете какие-либо зависимости функции, тогда нет необходимости «вводить» что-либо. Чтобы уточнить это, это относится только к именованным функциям, которые вы используете в своем контроллере, службе, фабрике и т. Д. –

1

.run() принимает один аргумент, d должна быть функцией, поэтому удалите первую строку.

angular.module('app').run(pageTitle); 
Смежные вопросы