【发布时间】:2014-01-12 05:29:51
【问题描述】:
处理一个表单,让用户根据 $rootScope(也可以是 $scope)上的一个变量来编辑他们的详细信息。
$rootScope.formData = $rootScope.user;
在视图中,输入上有一个ng-model:
ng-model="formData.email"
我期望的行为是更新模型,只有 $rootScope.formData 会更新,但两者都会更新。
有没有办法打破两者的关系?
【问题讨论】:
-
这里的期望是错误的。
user是一个参考。 JS 中的对象作为引用传递。就是这样。您可以随时调用 clone 或 cloneDeep(例如 lo-dash)。我建议根据 JS 行为是通过引用传递这一事实重新考虑您的设计 -
你是对的,文档给出了这个确切的场景作为 angular.copy() 的示例。如果您将此作为答案,我会将其标记为这样。我所要做的就是在该方法中包装第二个 var。谢谢。 docs.angularjs.org/api/angular.copy
标签: javascript angularjs scope