2015-07-31 2 views
0

Например, в AngularJS, если вы привязываете ng-model к ng-repeater, и ваш контроллер вызывает службу, которая обновляет модель, то ретранслятор обновляется, чтобы отразить изменение.Как элемент MVC System View знает, когда нужно обновлять?

Вопрос в том, как элемент вида (в этом примере, ng-repeater) знает, что нужно обновить?

Например, существует ли таймер, который срабатывает каждую пару миллисекунд и обновляет пользовательский интерфейс (маловероятно)? Контроллер или представление реализуют какой-либо тип внутреннего прослушивателя событий для всех привязок и когда модель обновляется, он запускает повторную компоновку связанных элементов представления?

ответ

1

Когда мы пишем выражение ({{dyanvar}}), за кулисами Угловая настройка наблюдателя в модели области, которая, в свою очередь, обновляет представление всякий раз, когда изменяется модель. Этот наблюдающий, как и любой другой наблюдатель, мы создали в AngularJS:

$scope.$watch('dyanvar', function(newValue, oldValue) { 
    //update the view with newValue 
}); 

Второй аргумент, переданный $ (смотреть) известен как функция слушателя, и он вызывается всякий раз, когда изменяется значение dyanvar.

Ваш ответ в этой статье: https://cfdeepak.wordpress.com/2014/09/29/how-two-way-data-binding-works-in-angular-js/

+0

Большой найти! Наверное, я искал неправильные слова для вопроса, который у меня был на самом деле. Вы знаете, работают ли другие среды MVC, такие как версия .NET, на аналогичных концепциях? – chriszumberge

+0

@chriszumberge Ни HTML, ни JavaScript изначально не поддерживают привязку данных. Это означает, что вам нужно написать код для размещения данных в элементе управления и написать код, чтобы извлечь его. Или вы можете использовать фреймворки, которые уже делают это за вас. Большинство современных фреймворков MVC делают это для вас и назову некоторые: AngularJS, BackboneJS, Ember, Simpli5, Meteor и список продолжаются ... Даже в JQuery есть импульс для поддержки того же: выражение jQXB. Надеюсь, что я смог ответить на ваш вопрос. –

+0

Правильно, это все имеет смысл, но так как это все в основном вопрос теории MVC, чем вопрос, связанный с угловым выражением, что о чем-то не в HTML/JS lik iOS в Xcode? Обновлен текст UILabel, использует ли эта структура наблюдатель? Как наблюдатель «Стандарт MVC Framework»? – chriszumberge