2016-12-13 5 views
0

Я ввожу поставщика значений в свой контроллер, и я получаю объект, но когда я пытаюсь прочитать этот объект, используя .toString(), String() или любым другим способом, я получаю только [Object object] на браузера или терминала. Я что-то пропустил?Поставщик углового значения не работает

(function() { 
 
    angular 
 
     .module("myApp", [ 
 
      'ngRoute' 
 
     ]); 
 
})(); 
 

 
(function() { 
 
    angular.module("myApp").constant('myValue', 3) 
 
})(); 
 

 
(function() { 
 
    angular 
 
     .module("myApp") 
 
     .controller('AllCtrl', ['myValue', setHome]); 
 

 
    function setHome(myValue) { 
 

 
     console.log("Value: " + myValue); 
 

 
    } 
 

 
})();

+0

Не удается воспроизвести: http://plnkr.co/edit/7WQ3bz5Ao3fgT2CNvkRx?p=preview. Опубликовать полный пример, в plunkr, воспроизводя проблему –

+0

Где находится объект, из которого вы хотите пройти? Это из шаблонов двигателя, таких как Razor, или ejs? Если это так, вам нужно сделать «сырой» формат объекта. Например, в Razor это '.value (« myValue », @ Html.Raw ([сериализованная модель JSON])). В ejs это будет '.value (« myValue », <% - [JSON serialized object]%>)' – mhodges

+0

Это созданный Plunker i –

ответ

1

Когда вы передаете объект из шаблонизатор, как бритва, или EJS, вы должны использовать необработанный формат объекта.

В бритве, например, это .value("myValue", @Html.Raw([JSON serialized model])).

В EJS было бы .value("myValue", <%- [JSON serialized object] %>)

// *some .js file* 
(function() { 
    angular 
     .module("myApp", [ 
      'ngRoute' 
     ]); 
})(); 

// *in your .ejs file* 
(function() { 
    // for ejs 
    angular.module("myApp").constant('myValue', <%- jsonObject %>); 
    // for Razor 
    angular.module("myApp").constant('myValue', @Html.Raw(jsonObject)); 
})(); 

// *in another .js file* 
(function() { 
    angular 
     .module("myApp") 
     .controller('AllCtrl', ['myValue', setHome]); 

    function setHome(myValue) { 

     console.log("Value: " + myValue); 

    } 

})(); 
+0

I Я пытаюсь использовать значение в контроллере и не обязательно использовать его в своем шаблоне ejs. Извините, мой текущий проект большой, у меня есть вся моя бизнес-логика на моих контроллерах, и я ищу способ свести их к минимуму, используя заводы, ценности, сервисы и т. Д. –

+0

@wjr Именно так я и отвечаю ... Вы берете объект из ejs и вводите его в свой угловой контроллер. Вы попробовали это? – mhodges

+0

Я пытаюсь использовать значение/константу в контроллере, не отправляя его в свой шаблон. Другими словами, вызывая значения или функции от значений или постоянных поставщиков к моим контроллерам. Это возможно? До сих пор я использую $ rootScope для использования значений в проекте, но я не знал, можно ли делать это с помощью провайдеров. Надеюсь, я объяснил это лучше, еще раз спасибо! –

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