2016-12-20 20 views
0

Я делаю некоторые манипуляции с домино внутри ng-repeat. Теперь я хочу сбросить свой DOM в соответствии с моделью, где ng-repeat перебирает цикл. Как заставить AngularJS перерисовать содержимое ng-repeat.Обновить ng-repeat даже ничего не изменилось

Применение не работает, очевидно, не приводит к изменениям, внесенным в модель.

+4

code ... code ... code ... – Sankar

+0

Зачем вам нужно повторно запустить ng-repeat, когда данные не были изменены? DOM-манипуляции могут выполняться с помощью директив, для чего они были «разработаны». Просто интересно ... –

ответ

2

Вся идея ng-repeat заключается в том, что она следует за моделью. Если вы хотите изменить контент, вы должны действительно изменить модель. Что касается манипуляций с dom-манипуляциями, вы должны выполнять те, которые находятся в угловом компоненте или директиве, и снова, чтобы они соответствовали модели.

Если вы этого не сделаете, вы в значительной степени можете не использовать Angular вообще.

+2

Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. - [Из обзора] (/ review/low-quality-posts/14648517) – maazza

+0

На самом деле, я говорю ему использовать директивы/компоненты для манипуляций с dom, чтобы он мог использовать модель als leading source, что является ответом на на вопрос «как я могу заставить ...». – Robba

0

Если вставить код, было бы здорово, но в любом случае, например, позволяет сказать, что мы имеем это:

$scope.rows = [1,2,3]; 

<div ng-repeat="row in rows"> 
    {{row}} 
</div> 

Для того, чтобы перекроить одни и те же данные с ng-repeat, нужно каким-то образом изменить сферу. Вы можете попробовать это после DOM manipilation

$scope.rows = angular.copy($scope.rows); 
0

На самом деле вам не нужно делать какие-либо специальные вещи, чтобы повторно связать DOM в угловых JS. Угловой JS поддерживает two way data binding, поэтому, когда ваша модель меняется, объект DOM автоматически перестраивается с измененным содержимым. Таким образом, все, что вам нужно сделать, это переустановить переменную контроллера, которая автоматически обновит DOM.