私は、$ http.get()メソッドを使ってデータを取得する角度コントローラーを持っています。私は応答データを$ scope.fooと$ scope.barに割り当てます。
次に、ng-model = "foo"を使用して$ scope.fooを入力フィールドにバインドし、$ scope関数$ scope.buttonをng-click = "buttonClick()"を使用してボタンにクリックします。
入力フィールドの値を変更してボタンを選択すると、$ scope.buttonClickは$ scope.fooと$ scope.barの両方を出力し、新しく入力された値と一致するように見えます。私は$ scope.fooだけをバインドしているので、これは奇妙です。なぜこれが起こっているのですか?どのように修正できますか?
コントローラ:
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);
});
});
(ES6構文を使用)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
[なぜ、なぜ、angular.copyを使用するのですか? (ディープコピー)](http://stackoverflow.com/questions/33043850/why-and-when-to-use-angular-copy-deep-copy) – georgeawg