Я использую Angular 1.4.7. Я не создал этот сайт, поэтому я не уверен, какую информацию мне нужно дать для этого. Мы рендеринг некоторых поисковые фильтров, но будет ли или не вы, они позволили конфигурируются данными, полученных с сервера, например:Угловой - запуск jQuery после обновления данных
$scope.searchFields = {
"date": true,
"price": true,
...
};
HTML-код для поля поиска ($scope.filter
является индивидуальным набором для Варса этот конкретный фильтр, в данном случае это просто выбрав максимальное числовое значение):
<div class="limit-group clearfix">
<span class="detail">Filter Name:</span>
<div class="filter-select-small">
<select name="filter" class="custom-select" ng-if="searchFilters.code">
<option value="">No Max</option>
<option ng-repeat="(key, value) in filter" value="<%key%>"><%value%></option>
</select>
<span class="unavailable" ng-if="!searchFilters.code">Unavailable</span>
</div>
</div>
есть условия, где доступные поля поиска будет меняться. Поля выбора по какой-либо причине заменяются плагином jQuery под названием selectbox. У меня есть функция resetFilterStyles()
, которая присоединяет плагин jQuery к полям, но я не уверен, где его запускать.
Внутри методов, определенных на $scope
данных обновляются с помощью $http.get()
но работает resetFilterStyles()
внутри эти анонимные функции не работает, по-видимому, потому что Угловая еще не обработаны, что данные были обновлены, поэтому изменения, которые были бы выполненные resetFilterStyles()
, отменяются обновлениями Angular в DOM.
Я пробовал установить обработчик $watch
, но это кажется неправильным местом для запуска моей функции, поскольку она, по-видимому, не принимает, (и дополнительно вызывает тяжелые ошибки в пределах Углового). Как человек, который не использует Angular, я не уверен, куда идти отсюда.
Редактировать
Функция сброса:
function resetFilterStyles() {
// desktop adv filters
var filterContainer = $('.advance-filter-dropdown');
$('select',filterContainer).selectbox('detach');
$('select',filterContainer).selectbox('attach');
$(".filter-select-small .sbOptions").niceScroll({cursorborder:"",cursorcolor:"#ccc",autohidemode: false});
// mobile adv filters
var filterContainer = $('.filter-wizard-mobile');
$('select',filterContainer).selectbox('detach');
$('select',filterContainer).selectbox('attach');
$(".filter-select-small .sbOptions").niceScroll({cursorborder:"",cursorcolor:"#ccc",autohidemode: false});
}
Любой шанс вы можете загрузить остальную часть кода, предпочтительно plunker? – dwbartz
Это много, и я не думаю, что у меня есть разрешение на публикацию неотредактированного кода (что должно было бы поддерживать мое рассудочное отношение). Есть что-то более ожидаемое? –
Мне просто интересно посмотреть ваш контроллер и функцию сброса, которую вы упомянули. Поскольку они не видят изменений, они не будут отображаться до тех пор, пока Angular не выполнит цикл дайджеста, который, если вы не укажете, что он явно запускается, он не знает, как работать. – dwbartz