Angularjs作用域变量重复值

Angularjs作用域变量重复值,angularjs,Angularjs,不完全理解我在这里的范围问题,并寻求清晰和如何解决这个问题。我有一个从服务中获取的字符串数组。我要做的是将这些字符串存储在一个范围变量中 当我的ui select=“loadDealStuff($item)”运行时,我有一个on-select方法将所选对象传入。如果它的键是某个值,那么我将从数组中删除一些元素。否则,我需要数组中的原始值。代码如下: scope.productTypes = myService.constantsStrings.myProductTypes;

不完全理解我在这里的范围问题,并寻求清晰和如何解决这个问题。我有一个从服务中获取的字符串数组。我要做的是将这些字符串存储在一个范围变量中

当我的
ui select=“loadDealStuff($item)”
运行时,我有一个on-select方法将所选对象传入。如果它的键是某个值,那么我将从数组中删除一些元素。否则,我需要数组中的原始值。代码如下:

scope.productTypes = myService.constantsStrings.myProductTypes;                
scope.otherTypes = myService.constantsStrings.myProductTypes;

var x = scope.productTypes;//array I want to manipulate
var y = scope.otherTypes;//should be original values

scope.loadDealStuff= function(item){
  if(item.key == 3){                                                                        
    x.splice(0,1);
    x.splice(2,1);
    console.log(x);
  } else {                                                                
    console.log(y);
  }
};

当记录的y与x相同时。

scope.productTypes
scope.otherTypes
引用了相同的数组(您服务的结果),扩展后,“x”和“y”也引用了相同的数组,因为您正在分别分配
scope.productTypes
scope.otherTypes
的引用。您必须创建数组的副本,而不是分配它。查看更多信息。复制你的资料。