我有一个控制器,可以在页面上获取一些要更新的数据,但是我注入到控制器中的数据存在某种问题。
基本上,注入到控制器中的数据始终保持实时更新,但是我需要将页面中加载的第一个数据保存在变量中并且不能更改,但是由于某些原因,它会不断更新。
我的代码:
vm.storedData = null;
function activate() {
if(vm.storedData == null){
vm.storedData = data.condition_lines;
}
}
activate();
难道我做错了什么?
最佳答案
我相信这是由Javascript存储对象的方式引起的。data
是一个对象。 data
不存储condition_lines,它存储对condition_lines的引用,因此设置vm.storedData = data.condition_lines;
会导致按引用分配。结果,vm.storedData将始终等于data.condition_lines。
您可以使用angular.copy()来有效地按值赋值(它在后台执行了更复杂的操作,但结果相同)。vm.storedData = angular.copy(data.condition_lines);