小编use*_*510的帖子

如何在JSON中接收字节数组

我试图从服务器接收一个将包装在JSON中的pdf.

如果我只是将pdf的字节数组发送到前端,我可以通过设置responseType来正确读取它arraybuffer,然后我可以通过以下方式下载pdf:

var blob = new Blob([data], { type: application/pdf});
    if ($window.navigator && $window.navigator.msSaveOrOpenBlob) {
        $window.navigator.msSaveOrOpenBlob(blob);
    } else {
        var a = document.createElement("a");
        document.body.appendChild(a);
        var fileURL = URL.createObjectURL(blob);
        a.href = fileURL;
        a.download = fileName;
        a.click();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当服务器尝试发送带有bytearray的JSON时,如果我设置为responseTypeto JSON,那么我将无法转换blob.但是,如果我设置responseTypearrayBuffer,我将获得一个arrayBuffer数组,如何将其转换为JSON,同时仍然能够提取pdf:

我收到的JSON格式如下:

{
  result: true,
  value: <the pdf byte array>,
  errorMessage: null
}
Run Code Online (Sandbox Code Playgroud)

javascript json arraybuffer angularjs

7
推荐指数
2
解决办法
1030
查看次数

如何正确使用 ngrx 和 Angular 服务

开始学习 Angular,但不确定如何使用 ngrx 构建结构。

简而言之,我有一个服务,其中有两个数组,以及以特定方式操作这些数组的方法。我创建了该服务,因为多个组件需要操作数组的逻辑。其中一些将使用这些数组之一的相同状态,一些将具有不同的状态。

不同的组件将访问此服务,对数组进行更改并使数组返回渲染。然而,在网上进行研究后,似乎常见的做法是保持服务无状态。然后我遇到了 ngrx 商店。

所以我想我可以将这些数组放在主存储中而不是放在服务中,所以它变成:

组件会使用service,操作数组,service会触发一个action,然后store会通知组件数组的变化

但是,请查看 ngrx https://ngrx.io/ generated/images/guide/store/state-management-lifecycle.png 中的图表。组件和服务之间会有一个箭头,当应用程序变得更大时,这似乎会造成混乱。

那么我应该如何处理这个问题呢?我在这里误解了什么吗?也许服务应该是一个组件(但是阅读https://angular.io/guide/styleguide#delegate-complex-component-logic-to-services,看起来我确实在做正确的事情,将逻辑移出组件到服务,使组件变得简单)。

任何意见是极大的赞赏

ngrx angular

1
推荐指数
1
解决办法
1806
查看次数

标签 统计

angular ×1

angularjs ×1

arraybuffer ×1

javascript ×1

json ×1

ngrx ×1