AngularJs: вводит константу в контроллер - как получить к ней доступ в виде контроллера? - PullRequest
0 голосов
/ 19 февраля 2020

В app.js у меня есть

(function ()
{
    angular.module('routerDemo',
        [
             'ui.router',   // Routing
         ])

})();

angular.module('routerDemo').constant('constants',  { blip: 'blop', blup: 307 });
angular.module('routerDemo').constant('another_constant',  42);

и в controller_1.js

Controller_1.$inject = ['$rootScope', '$state', 'constants', 'another_constant'];


function Controller_1(   $rootScope,   $state,   constants,   another_constant)
{

и в представлении

<div ng-controller="Controller_1 as controller_1">
    <h1>This is view 1</h1>

    <div>Controller_1.constants.blip == {{controller_1.constants.blip}}</div>
    <div>Controller_1.the_answer == {{controller_1.another_constant}}</div>

, но они отображаются как пусто (хотя я могу просмотреть их, если я остановлю точку останова в контроллере, так что это просто вопрос синтаксиса в представлении)).

Что я делаю не так?

1 Ответ

2 голосов
/ 19 февраля 2020

Просто назначьте константы this внутри вашего контроллера

// controller_1
function Controller_1($rootScope, $state, constants, another_constant){
    this.constants = constants;
    this.another_constant = another_constant;
}

// view
<div ng-controller="Controller_1 as controller_1">
<h1>This is view 1</h1>

<div>Controller_1.constants.blip == {{controller_1.constants.blip}}</div>
<div>Controller_1.the_answer == {{controller_1.another_constant}}</div>
</div>
...