Angularjs: Как сделать директиву, которая вызывается после подстановки переменных?

Приветствую всех.

Есть 1 контроллер, 1 директива и html.

В контроллере есть $scope.variable.

Имеется такой html
<div class="description" my-directive>
{{variable}}
</div>


Задача состоит в следующем:

Директива должна посчитать количество символов в $scope.variable и вывести это количество.

Пробую получить в директиве так:
link: function(scope,element){
var text = element.text();
console.log(text);  // в text лежит {{variable}} а нужен сам текст этой переменной
}


Нашел вариант с использованием $timeout с 0 временем. Но мне он как-то не нравится и не кажется надежным. Может кто-то подскажет, как быть?
  • Вопрос задан
  • 2466 просмотров
Пригласить эксперта
Ответы на вопрос 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
angular.module('app')
.directive('myDirective', function () {
    return function (scope, el, attr) {
        scope.$watch('variable', function (text) {
              console.log('$scope.variable = %s', text);
        }
    }
});


а еще лучше воспользоваться изолированными скоупами. Если вам нужно просто вывести количество символов - проще будет это сделать фильтрами.
Ответ написан
walkman7
@walkman7
Ну так используйте scope.variable
Ответ написан
Serhioromano
@Serhioromano
Web Developer
А по мойму вообще не надо предавать или вставлять {{variable}} внутри директивы.

jsfiddle.net/asrus2v7
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы