Ich habe einen Winkel-Controller, der Daten mit der Methode $ http.get() erhält. Ich weise die Antwortdaten $ scope.foo und $ scope.bar zu.
Ich binde dann $ scope.foo an ein Eingabefeld mit ng-model = "foo" und dann eine $ scope Funktion $ scope.buttonKlicke auf eine Schaltfläche mit ng-click = "buttonClick()".
Wenn ich den Wert des Eingabefeldes ändere und die Schaltfläche wähle, gibt $ scope.buttonClick sowohl $ scope.foo als auch $ scope.bar aus und sie scheinen mit dem neu eingegebenen Wert übereinzustimmen. Das ist seltsam, weil ich $ scope.foo nur gebunden habe. Warum passiert das und wie kann ich das beheben?
Controller:
angular.module('app')
.controller('controller', ($scope, $http) => {
$document.ready(() => {
$http.get('/data').then((res) => {
$scope.foo = res.data;
$scope.bar = res.data;
});
$scope.buttonClick =() => console.log($scope.foo, $scope.bar);
});
});
(Verwendet ES6 Syntax) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
Mögliche Duplikate von [Warum und wann angular.copy verwenden? (Deep Copy)] (http://stackoverflow.com/questions/33043850/why-and-when-to-use-angular-copy-deep-copy) – georgeawg