为什么javascript变量会反映ng-model的变化?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么javascript变量会反映ng-model的变化?相关的知识,希望对你有一定的参考价值。
我全局声明变量对象,并在http
调用中分配该对象,该调用将在角度控制器加载时运行,然后将这个对象值分配给角度范围变量,并在ng-model
s中进行检索。当我更改ng-model
值之一时,在某些按钮上单击,它会反映回javascript
全局变量。为什么?
这是我的view
页面
<input type="submit" ng-click="Edit()" value="Edit" />
<form name="myEditUserForm" novalidate>
<input type="text" ng-model="Info.Name" required ng-blur="Change()">
<input type="text" ng-model="Info.MobileNo" required ng-blur="Change()">
<input type="text" ng-model="Info.Email" required ng-blur="Change()">
<input type="text" ng-model="Info.Gender" required ng-blur="Change()">
<input type="submit" ng-click="Update()" value="Save Changes" />
</form>
这是我的Angularjs
代码
app.controller('SomeController', function ($scope, $http) {
var someList = {};
$http({
method: 'GET',
url: '/Dashboard/GetData',
dataType: 'JSON',
headers: { 'content-type': 'application/json' }
}).then(function (response) {
someList = {
Name: response.data.Name,
MobileNo: response.data.MobileNo,
Email: response.data.Email,
Gender: response.data.Gender
};
});
$scope.Edit = function () {
$scope.Info = someList;
};
$scope.Change= function () {
console.log($scope.UpdateProfile.Email, tenantList.Email);
if ($scope.Info.Email != someList.Email) {
alert('changed');
}
};
我想从我希望获得的someList中获得相同的数据。
答案
这是因为在javascript中,当我们将一个对象分配给另一个对象时,对象是可变的,而javascript在对象之间共享引用。在让您理解什么是可变性之前,让我们分享引用的概念。另一答案
您应在您的本地范围内复制全球可验证的副本以上是关于为什么javascript变量会反映ng-model的变化?的主要内容,如果未能解决你的问题,请参考以下文章
当从 GeometryReader 中进行更改时,SwiftUI 不会反映对 @Binding @State 变量的更改