1

У меня проблема с моей директивой angular.js.Функции контроллера и ссылки в директиве не имеют одинакового объема

Это должно быть своего рода автозаполнения, в директивы собственности контроллер я загружаю массив значений, так и внутри ссылки функции компиляции шаблона, чтобы показать результаты.

Но когда я обновляю scope внутри ссылка не отражает на контроллер и шаблон, пожалуйста, посмотрите на пример здесь - http://plnkr.co/edit/Lz3QGwklghPo3as2QTqU

apply Должен ли я изменения масштаба или чего-л подобное?

+0

Почему вы вручную компилируете шаблон? –

+0

, потому что внутри компиляции это то же поведение .. – Kosmetika

ответ

1

Ваш код имеет две проблемы

  • Attach нажмите событие для документа вместо тела
  • Использование $ применяется() внутри безвыходном

Ниже код будет решить вашу проблему

$document.bind('click', function (e) { 
        scope.results = []; 
        scope.$apply(); 
       }); 
+0

+1 Большое спасибо, он решает эту проблему, всегда ли нужно '' $ apply'' при использовании компилятора углов? – Kosmetika

+1

Вам нужно использовать $ apply(), когда вы работаете вне углового контекста, функция bind принадлежит Jqlite (или Jquery, если jquery включен на страницу), поэтому эта функция не принадлежит к угловому, поэтому вам нужно использовать $ apply(). –

+0

yep, большое спасибо! – Kosmetika

1

Я обновляю свой метод $body.bind('click',...) к

$body.bind('change', function (e) { 
    scope.results = []; 
}); 

и казалось, на работу (я имею в виду, что через 0,5 секунды я напечатал письмо, повторно отображается список имени).

+0

nope, он не работает – Kosmetika

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