我正在使用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
请告诉我如何完成存储。 在此先感谢!!
答案 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});
});
}