Пользовательская директива не показывает значение {{variable}}

0

У меня этот угловой контроллер:

app.controller("timelineCtrl", function ($scope) {
    $scope.user="john";
         .
         .
         .
}

И эта директива:

app.directive('helloWorld', function() {
    return {
        restrict: 'AE',
        replace: true,
        template: '<div> Hello World {{user}} </div>'
    };
});

и эта точка зрения:

<div class="row" ng-controller="timelineCtrl">
     <hello-world></hello-world>
</div>

но я получаю это в результате html:

Hello World {{user}}

Почему {{user}} не интерпретируется для значения $scope.user?

  • 1
    Кажется, это работает для меня - plnkr.co/edit/u5ZRFZITnPIOCvQVyTk6?p=preview
  • 1
    Вы получаете ошибку до того, как это произойдет? Вы никогда не должны видеть {{}} внутри шаблона, когда он объявлен внутри элемента ng-app. Даже если значение не существует. Я ожидаю, что будет отображен «Hello world», даже если пользователь не объявлен в этой области.
Показать ещё 3 комментария
Теги:

1 ответ

0
Лучший ответ

Присоедините контроллер к определению своей директивы.

app.directive('helloWorld', function() {
    return {
        restrict: 'AE',
        replace: true,
        controller: 'timelineCtrl',
        template: '<div> Hello World {{user}} </div>'
    };
});

Редактировать; Учитывая ваше последнее редактирование, я не уверен, что это проблема, во всяком случае - здесь jsBin показывает вам, как это работает.


Просто уточнить (для тех, кто может это прочитать); вам не нужно прикреплять контроллер к вашей директиве. Вы можете, если хотите. В этом нет ничего плохого - даже если директива не предоставляет его собственный ребенок/изолированный объем.

  • 0
    Я делаю это, но все еще не работает.
  • 1
    Тогда, боюсь, вам придется уточнить. Как это не работает? Можем ли мы увидеть трассировку стека? Выход ваших devtools? Сказать, что вы делаете то, что делает мусорное ведро (которое работает), а затем сказать, что это не очень полезно (извините).
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню