NGRX /数据实体getAll用新的而不是更新连接旧数据

时间:2019-10-25 06:57:19

标签: angular ngrx angular-ngrx-data

我正在尝试使用ngrx-data-la b作为我的项目的示例。

这是我使用的项目的stackblitz

我无法使用正在使用的服务器的实际URL。该网址属于我的公司。但是正在发生的事情是服务器正在将随机生成的数据返回给应用程序。问题在于商店中的实体不会被替换,而是将它们加起来。每次刷新英雄页面时,服务器都会带来新数据并将其与旧数据连接在一起。

entity-store.module.ts 中,我将 defaultDataServiceConfig 根目录和Hero网址更改为我的服务器。 getAll()可以工作,但是正如我再说一遍,它将数据合并为旧数据。

  root: 'api', // default root path to the server's web api

  // Optionally specify resource URLS for HTTP calls
  entityHttpResourceUrls: {
    // Case matters. Match the case of the entity name.
    Hero: {
      // You must specify the root as part of the resource URL.
      entityResourceUrl: 'api/hero/',
      collectionResourceUrl: 'api/heroes/'
    }
  },

如何使getAll替换旧数据而不是将其保留?

1 个答案:

答案 0 :(得分:2)

我的坏。多次重新创建我的项目之后。我发现getAll将始终合并本地和远程实体。替换您必须使用负载的实体。

getAll

$connectionName = "AzureRunAsConnection"
try
{
    # Get the connection "AzureRunAsConnection "
    $servicePrincipalConnection=Get-AutomationConnection -Name $connectionName         

    "Logging in to Azure..."
    Connect-AzAccount `
        -ServicePrincipal `
        -TenantId $servicePrincipalConnection.TenantId `
        -ApplicationId $servicePrincipalConnection.ApplicationId `
        -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint 
}
catch {
    if (!$servicePrincipalConnection)
    {
        $ErrorMessage = "Connection $connectionName not found."
        throw $ErrorMessage
    } else{
        Write-Error -Message $_.Exception
        throw $_.Exception
    }
}

$database = Get-AzSqlDatabase –ResourceGroupName "<resource-group-name>" –ServerName "<server-name>" –DatabaseName "<data-warehouse-name>"
if($database){

    if($database.Status -eq 'Paused'){
        Write-Output "The Data Warehouse was already paused."
    }else{
        $database | Suspend-AzSqlDatabase
        Write-Output "The Data Warehouse has been paused." 
    }

}else{

    Write-Output "The Data Warehouse does not exist."
}

加载

  /**
   * Dispatch action to query remote storage for all entities and
   * merge the queried entities into the cached collection.
   * @param [options] options that influence merge behavior
   * @returns Observable of the collection
   * after server reports successful query or the query error.
   * @see load()
   */
  getAll(options?: EntityActionOptions): Observable<T[]> {
    return this.dispatcher.getAll(options);
  }