2016-08-20 2 views
0

Когда я не вставляйте какие-либо параметры $inject метода, то он прекрасно работает:

(function() 
    {   
     var FooController=function($scope){   
        alert('a1'); 
        debugger; 
     }; 

     FooController.$inject=['$scope'];//it perfectly works    
     angular.module('someApp',[]).controller('FooController', FooController); 
    }()); 

Однако, если добавить некоторые параметры $inject метода, то он не работает:

(function() 
{ 
    var FooController=function($scope, foo, bar) { 
       alert('a1'); 
       debugger; 
    }; 

    var foo={type:"Fiat", model:"500", color:"white"}; 
    var bar={type:"Fiat", model:"500", color:"white"}; 

    FooController.$inject=['$scope', 'foo', 'bar'];//it doesn't work 
    angular.module('someApp',[]).controller('FooController', FooController); 
}()); 

I Я попытался поставить alert('a1'), но он не запускается. Поэтому, на мой взгляд, я неправильно объявил следующую строку:

FooController.$inject=['$scope', 'foo', 'bar'];//it doesn't work 

Не могли бы вы пояснить, что я делаю неправильно?

+0

Есть ли на консоль какие-либо ошибки? – Script47

+0

@ Script47 Консоль не показывает никаких ошибок, браузер просто рисует простой HTML – StepUp

ответ

2

Как насчет создания специализированных услуг value?

(function() 
{ 
    var FooController=function($scope, foo, bar) { 
       alert('a1'); 
       debugger; 
    }; 

    var foo={type:"Fiat", model:"500", color:"white"}; 
    var bar={type:"Fiat", model:"500", color:"white"}; 

    FooController.$inject=['$scope', 'foo', 'bar']; 
    angular.module('someApp',[]) 
     .controller('FooController', FooController) 
     .value('foo', foo) 
     .value('bar', bar) 
}()); 
+0

Ты классный! Он отлично работает! Но не могли бы вы пояснить, почему мой подход не работает? – StepUp

+1

Для того, чтобы выполнить инъекцию, Angular необходимо спросить поставщиков. Используя value(), мы создаем их, что не соответствует вашему исходному коду. – Delapouite

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