В чем разница между ng-моделью и стандартной двусторонней привязкой данных?

#javascript #angularjs #angularjs-scope

#javascript #angularjs #angularjs-область

Вопрос:

Существует два способа настройки двусторонней привязки данных в angularjs.

Двусторонняя привязка данных

Один из них заключается в определении двусторонней привязки данных в изолированной области:

 scope: {
     myValue: '='
}
  

Следите за изменениями с $scope.$watch помощью и устанавливайте изменения с $scope.myValue = newVal помощью .

ng-model

Другой — с помощью ng-model . Определите это в своем приложении с require: '?ngModel' помощью . Следите за изменениями с $scope.$watch($attributes.ngModel) помощью и устанавливайте изменения с ngModel.$setViewValue помощью .

Очевидно, что между этими двумя существуют различия в именах методов и т. Д., Но Чем они отличаются по духу? Где я должен использовать ng-model , и где я должен использовать двустороннюю привязку данных?

Ответ №1:

С помощью примитива свойство области действия директивы получает копию значения родительской области действия. Изменения в одном не влияют на другое.

В случае объекта как родительская область, так и область директивы имеют ссылку на один и тот же (один) объект. Изменения в обоих влияют на один и тот же объект.

Комментарии:

1. Подождите, разве вы не можете использовать оба примитива и объекты как с двусторонней привязкой данных, так и с ng-model?