跟踪阵列顺序状态

时间:2016-11-09 16:43:50

标签: angular typescript

我需要跟踪数组在重新排序之前和重新排序之后的变化。我有两个变量originalOrderrulesetOrder。我的组件绑定到rulesetOrder,因此当我移动一个项目时,它会更新该数组以反映其在数组中的索引。每次重新排序时,都会触发一个事件,并将originalOrderrulesetOrder进行比较。在所有比较结束时,我将originalOrder设置为等于已更新的新rulesetOrder

我第一次重新排序,没关系,originalOrder与新的rulesetOrder不同(originalOrder)。如果我再次进行重新排序,rulesetOrder似乎已自动更改为originalOrder,因此两个数组之间没有显示差异。

这是我的代码,任何人都可以帮我解决我做错了什么,以便OnReorder() { console.log("Start: " + JSON.stringify(this.originalOrder)); console.log("New Order:" + JSON.stringify(this.rulesetOrder)); this.originalOrder = this.rulesetOrder; } 总是等于事件再次被触发时数组的先前状态?

rulesetOrder

当我将原始顺序设置为等于add-pssnapin CloudBerryLab.Explorer.PSSnapIn Set-CloudOption -UseSSL $true Set-CloudOption -PermissionsInheritance "inheritall" Set-CloudOption -ThreadCount 5 $s3 = Get-CloudS3Connection -UseSSL -Key kkk -Secret ssss $dest = $s3 | Select-CloudFolder -Path bucket/D/Data-Users $local = Get-CloudFileSystemConnection $source = $local | Select-CloudFolder \\server\D\Data-Users $source | Copy-CloudSyncFolders $dest -CompareByContent -IncludeSubFolders -DeleteOnTarget -SSE -StorageClass standard 时,它是否将它们绑定在一起,以便当一个更改另一个时也会这样?有没有解决的办法?

第一次:

  

开始:[" ae74e7fd-a772-4fa2-b2cb-19c7c0bc611f"," 1caf3416-9853-49eb-8bda-c3b9017a204a"," 9e5fe94d-6c0e-4b85- 85f4-38a074badfeb"]

     

新订单:[" 1caf3416-9853-49eb-8bda-c3b9017a204a"," ae74e7fd-a772-4fa2-b2cb-19c7c0bc611f"," 9e5fe94d-6c0e-4b85 -85f4-38a074badfeb"]

第二次:

  

开始:[" ae74e7fd-a772-4fa2-b2cb-19c7c0bc611f"," 1caf3416-9853-49eb-8bda-c3b9017a204a"," 9e5fe94d-6c0e-4b85- 85f4-38a074badfeb"]

     

新订单:[" ae74e7fd-a772-4fa2-b2cb-19c7c0bc611f"," 1caf3416-9853-49eb-8bda-c3b9017a204a"," 9e5fe94d-6c0e-4b85 -85f4-38a074badfeb"]

1 个答案:

答案 0 :(得分:0)

通过引用传递数组,因此这将是如何工作的,正如上面Mike所指出的,数组的副本需要设置为originalOrder数组。