Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有一种方法可以“观看”IndexedDB记录,这样我就可以在它被更改时做出响应?_Javascript_Angularjs_Typescript_Indexeddb - Fatal编程技术网

Javascript 有没有一种方法可以“观看”IndexedDB记录,这样我就可以在它被更改时做出响应?

Javascript 有没有一种方法可以“观看”IndexedDB记录,这样我就可以在它被更改时做出响应?,javascript,angularjs,typescript,indexeddb,Javascript,Angularjs,Typescript,Indexeddb,我正在构建一个Angular+TypeScript应用程序,它使用IndexedDB在本地存储数据 我有一个Angular指令,它将范围变量的值设置为从IndexedDB请求返回的一些数据。它非常简单,可以执行以下操作: 指令A: “我的指令”视图循环浏览以下各项: <div ng-repeat="item in items">{{ item }}</div> 当然,指令A不知道指令B对groupOne所做的更改,除非它发出另一个请求。因此,我的观点是静态的 我知道我可

我正在构建一个Angular+TypeScript应用程序,它使用IndexedDB在本地存储数据

我有一个Angular指令,它将范围变量的值设置为从IndexedDB请求返回的一些数据。它非常简单,可以执行以下操作:

指令A: “我的指令”视图循环浏览以下各项:

<div ng-repeat="item in items">{{ item }}</div>
当然,指令A不知道指令B对groupOne所做的更改,除非它发出另一个请求。因此,我的观点是静态的

我知道我可以将指令A的IndexedDB请求包装成一个间隔并检查更新,但这似乎是解决此问题的一种奇怪方法


是否有办法通知IndexedDB此更改?Angular是否提供了一些类似于$scope.$watch的帮助?

纯IndexedDB还没有实现这一点的方法,但它正在原型化。名字叫“观察员”。如果您愿意,可以尝试使用。

纯IndexedDB还没有实现这一点的方法,但它正在原型化。名字叫“观察员”。如果你愿意的话,你可以试着使用。这并不是我想要的,这就是为什么我接受了德格罗根的答案,但如果有人偶然发现这个问题,他会对我最终做了什么感到好奇:

每当我更改groupOne或任何其他我关心的内容时,手动广播自定义事件可以暂时解决我的问题。 我使用了$scope.$从管理 指令之间的一些交互,让指令a了解 变更指令B使用$scope.$on生成。 这篇文章真的很有帮助: 这并不完全是我想要的,这就是我接受德格罗根回答的原因,但如果有人偶然发现这个问题,他会对我最终做了什么感到好奇:

每当我更改groupOne或任何其他我关心的内容时,手动广播自定义事件可以暂时解决我的问题。 我使用了$scope.$从管理 指令之间的一些交互,让指令a了解 变更指令B使用$scope.$on生成。 这篇文章真的很有帮助:
尝试谷歌角发射器。在更通用的语言中,这称为侦听器模式。请尝试在谷歌上搜索角度发射器。在更一般的语言中,这称为侦听器模式。
<div ng-repeat="item in items">{{ item }}</div>
groupOne.items.push("a new item");
this.dataService.updateGroup(groupOne).then(() => {
   // groupOne has been changed!
   // how can I let Directive A know about this, so Directive A can update its scope.items?
});