使用商店插件无法正常存储在annotator.js中

时间:2014-05-09 10:27:01

标签: javascript jquery annotations annotate

我正在使用annotator.js的商店插件 问题是我无法将收到的数据(在annotatorjs的评论框中输入)作为JSON存储在所需的位置。

插件的代码如下

$('#page-container').annotator().annotator('addPlugin', 'Store', {
  urls: {

    prefix: '/editor/uploaded',
    update:'/annotations',

  }
});

我在控制台中获得的输出是

XHR finished loading: POST "http://localhost/editor/uploaded/annotations"
Uncaught TypeError: Cannot read property 'id' of null

请告诉我如何完成存储。 在此先感谢!!

2 个答案:

答案 0 :(得分:2)

您正在构建作为参数传递错误的对象,如"前缀"不属于" urls"内的财产。 关于你的例子,正确的方法是:

$('#page-container').annotator().annotator('addPlugin', 'Store', {
  prefix: '/editor/uploaded',
  urls: {
    update:'/annotations'
  }
});

然后,您需要根据插件的要求在服务器端设置API。

就个人而言,我最终创建了自己的商店插件,因此我可以根据需要处理注释。这不是很难,而且非常值得付出努力。

答案 1 :(得分:0)

  public annotatorFunc(): void {
    const pageUri = function () {
        return {
            beforeAnnotationCreated: function (ann) {
            ann.uri = window.location.href;
            }
        };
    };
    const elem = document.querySelector('pdf-container');

    const app = new annotator.App();
    app.include(annotator.ui.main, {element: elem});
    app.include(annotator.storage.http, {prefix: 'http://localhost:8080/api'});
    app.include(pageUri);

    app.start().then(function () {
        app.annotations.load({uri: window.location.href});
    });
}