4

我对 Aviary Feather 的集成有疑问。在我的 javascript 中,我需要像这样使用 Feathers:

// Aviary init
var featherProductEditor = new Aviary.Feather({
  apiKey: 'myapykey',
  apiVersion: 3,
  theme: 'dark',
  tools: 'all',
  appendTo: '',
  onSave: function(imageID, newURL) {
    // Do things for featherProductEditor
    console.log('featherProductEditor');
    // Close the editor
    featherProductEditor.close();
  }
});

// Aviary init
var featherContentBlockEditor = new Aviary.Feather({
  apiKey: 'myapykey',
  apiVersion: 3,
  theme: 'light',
  tools: 'all',
  appendTo: '',
  onSave: function(imageID, newURL) {
    // Do things for featherContentBlockEditor
    console.log('featherContentBlockEditor');
    // Close the editor
    featherContentBlockEditor.close();
  }
});

然后我称这两个 Feather

featherProductEditor.launch({ ....

featherContentBlockEditor.launch({ ....

但唯一调用的“ onSave*: ”回调是“ featherContentBlockEditor ”变量的第二个

为什么?我该如何解决这个问题?

4

3 回答 3

3

对于您的第一个问题,为什么只onSave调用第二个?

在内部,Aviary Web SDK 将羽毛配置存储在 中AV.launchData,并且AVAviary全局变量的别名。这是该Aviary.Feather函数的代码片段:

AV.Feather = function (config) {
    ...
    AV.launchData = AV.util.extend(AV.baseConfig, config);
    ...
}

因此,这意味着featherContentBlockEditor' 配置将覆盖featherProductEditor' 配置。

AV.launchData.onSave()您可以通过在创建每个羽毛后添加来验证这一点。

对于您的第二个问题,我该如何解决?

不,你不能不侵入 SDK。这就是 Aviary Web SDK 的工作方式,Aviary.Feather每个页面只定义一个实例。

于 2014-06-19T03:20:13.133 回答
1

你怎么能解决它?

您可以使用imageID来确定哪个 Aviary 实例产生了 onSave 事件。

  onSave: function(imageID, newURL) {
    if(imageID === 'productImg') {
      // Do things for featherFeatureEditor
      console.log('featherProductEditor');
    } else {
      // Do things for featherContentBlockEditor
      console.log('featherContentBlockEditor');
    }
    // Close the editor
    featherContentBlockEditor.close();
  }

用于image:'productImg'产品图像的启动配置。

于 2015-09-11T15:13:53.670 回答
0

您只能在给定页面上拥有一个 Aviary 编辑器实例,但您可以通过调用来重用它:

  editor.close(true); // passing true forces an immediate close without triggering shutdown animation
  editor.launch({ image: new_id, url: new_url });
于 2014-10-30T18:55:46.060 回答