为什么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的变化?的主要内容,如果未能解决你的问题,请参考以下文章

范围变量值的变化没有反映在我的字符串中

为啥在函数中使用已发布变量的更新值没有得到反映?

Db2:未反映对 SQL_COMPAT 全局变量设置的更改

当从 GeometryReader 中进行更改时,SwiftUI 不会反映对 @Binding @State 变量的更改

将 Javascript 计算传递给 Django 后端

常量与变量的区别是啥 如何区别常量与变量