2015-05-20 3 views
0

Предположим, у меня есть директива m-list, которая прослушивает определенное событие, чтобы получить его элементы.Доступ и изменение модели из директивы атрибута

$rootScope.$on('certain-event', function (msg) { 
    vm.items = msg.data; 
}); 

Теперь я пишу другую директиву (директива атрибут), что бы добавить функциональность в список, я бы назвал его m-searchable. Это добавляет возможность фильтровать через список элементов и отображать только те элементы, которые соответствуют данным, переданным другим событием. В идеале

<m-list m-searchable></m-list> 

И поиск будет иметь что-то вроде:

$rootScope.$on('search', function (msg) { 
    var searchValue = msg.searchValue; 
    // update the items of the parent directive 
    // like parent.items = matches(searchValue, parent.items) 
}); 
+0

эта директива фильтра сильно отличается от фильтра [фильтр] [1]: -). [1]: https://docs.angularjs.org/api/ng/filter/filter – Raulucco

+0

да, больше похоже на фильтр директивы. –

+0

Это фильтр, который показывает, что вы можете получить к нему доступ из javascript-кода через службу $ filter и использовать его в своей функции или другом методе $ filter ('filter') (массив, выражение, компаратор) Надеюсь, что эта помощь – Raulucco

ответ

0

Вы можете использовать фильтр filter для фильтрации данных.

<li data-ng-repeat="item in vm.items | filter:searchInput"> 

Я сделал plunker, так как я бы его архитектуру. Обратите внимание, что поддельные данные могут поступать из службы.

+0

Я ценю усилия, но этого не может быть, так как подход ** должен ** быть * evented * way –

+0

Что мешает вам использовать событие для загрузки данных? – Raulucco

+0

Я сменил плункер. – Raulucco

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