#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?