在 wordpress 中使用 Backbone.js 会导致问题吗?

Using Backbone.js with wordpress causes problems?

我在一个借用了一些 wordpress 媒体功能的 wordpress 插件项目。

我需要使用 backbone 来构建插件,但由于 wordpress media 也使用 backbone,恐怕这会导致问题,因为 wordpress 使用不同版本的 backbone.

我不怪wordpress,但我学习了wp.media源代码(太糟糕了,没有文档)并且发现他们仍然使用旧版本的backbone(仍然使用控制器,this.options,等等)。

我不想写旧的 backbone 版本。于是心里有了一些想法:

  1. 注册最新版backbone,最后出现重复脚本
  2. 注销 wordpress' backbone 并注册一个新的,可能某些 wordpress 功能将无法使用。
  3. 只需编写脚本并祈祷 wordpress' backbone 会成功。

我仍然不知道 wordpress 使用的 backbone 是哪个版本。如果我的 backbone 插件可以在不影响 wordpress 功能的情况下工作,请告诉我。

谢谢。

Backbone 描述了 noConflict 模式 here

Runs Backbone.js in noConflict mode, returning the Backbone variable to its previous owner. Returns a reference to this Backbone object.

如果你加载 "your" Backbone 在 Wordpress 之后。然后调用 Backbone.noConflict() 应该恢复 Wordpress 版本,因此 window.Backbone 指向他们正在使用的版本,您可以使用它的引用 returns 将您的版本声明为 window.MyBackbone 或其他任何内容你喜欢

它不是很漂亮,但我认为这是你最好的选择。