【问题标题】:How to add listener on data change in LokiJS?如何在 LokiJS 中添加数据更改监听器?
【发布时间】:2018-01-16 19:43:05
【问题描述】:

我正在尝试向 LokiJS 添加侦听器,以便每当任何集合中的数据发生更改时我都会收到通知(尽管根据文档 LokiJS 支持数据更改通知)。但是我无法收到有关数据更改的通知。

下面是我正在使用的代码 sn-p:

import { Component, OnInit } from '@angular/core';
import { Message } from 'primeng/components/common/api';
import { MessageService } from 'primeng/components/common/messageservice';

import * as loki from 'lokijs';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {

  db: loki;

  constructor(private messageService: MessageService) {

  }

  ngOnInit() {
    this.db = new loki('kp-loki.db');
    this.db.addCollection('kp_users', { asyncListeners: true });
    console.log(this.db.addListener('changes', event => console.log(event)));
  }

  add() {
    this.messageService.add({ severity: 'sucess', summary: 'data added' });
    const uu = this.db.getCollection('kp_users');
    uu.insert({ id: 1, name: 'kp', city: 'blr' });
  }

  view() {
    const uu = this.db.getCollection('kp_users');
    this.messageService.add({ severity: 'sucess', summary: JSON.stringify(uu.data) });
  }

}

【问题讨论】:

    标签: javascript dom-events lokijs


    【解决方案1】:

    好的,我会寻找下面的事件

      this.events = {
        'init': [],
        'loaded': [],
        'flushChanges': [],
        'close': [],
        'changes': [],
        'warning': []
      };
    

    但是我应该使用下面的事件,在改变监听器事件时,它起作用了

      // events
      this.events = {
        'insert': [],
        'update': [],
        'pre-insert': [],
        'pre-update': [],
        'close': [],
        'flushbuffer': [],
        'error': [],
        'delete': [],
        'warning': []
      };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多