【问题标题】:Using AngularJS "copy()" to avoid reference issues使用 AngularJS "copy()" 来避免引用问题
【发布时间】:2014-03-24 23:08:55
【问题描述】:

我正在显示一个项目列表,每个项目旁边都有一个“编辑”按钮。单击会打开一个角度 ui 模态窗口,用户可以更改特定项目的某些属性。

现在,让我烦恼的是,在此编辑窗口中输入时,项目列表中的特定项目立即反映了更改。我只希望它在用户单击模式中的“确定”时更新,并且如果用户选择“取消”则根本不更改。

我的解决方法是使用副本来制作所选项目的副本,然后用作视图的模型:

var modalInstance = $modal.open({
    templateUrl: 'scripts/app/views/editBond.html',
    controller: function ($scope, $modalInstance, bond) {
        $scope.bond = angular.copy(bond);
        $scope.ok = function () {
            $modalInstance.close($scope.bond);
        };
        $scope.cancel = function () {
            $modalInstance.dismiss('cancel');
        };
    },
    resolve: {
        bond: function () {
            return bond;
        }
    }
});

使用 angular.copy() 是否适合避免此类问题?这是一个范围问题吗?

【问题讨论】:

    标签: javascript angularjs angularjs-scope


    【解决方案1】:

    是的,在这里使用angular.copy() 绝对合适。如果你想要更高级的东西,你可能想结帐angular-history

    【讨论】:

    • 谢谢你,克里斯托夫 :o)
    猜你喜欢
    • 1970-01-01
    • 2019-03-27
    • 2011-09-25
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    相关资源
    最近更新 更多