gpt4 book ai didi

javascript - 重新初始化 Ember 应用程序/恢复应用程序状态

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:33:47 27 4
gpt4 key购买 nike

我正在根据 Google 的 AJAX 爬网规范 (?_escaped_fragment_=...) 在 Node.JS 后端内使用 phantom.js 呈现静态 HTML 页面以用于 SEO。前端应用程序是用 Ember(版本 1.0.0 )编写的。

我在浏览器中测试那些静态 HTML URL 时注意到 Ember 无法重新初始化,导致类似

的错误
Assertion failed: You cannot use the same root element (body) multiple times in an    Ember.Application 
Assertion failed: You cannot make a new Ember.Application using a root element that is a descendent of an existing Ember.Application

我想知道是否:

  • 这些错误的发生是因为 DOM 已经填充了 Ember 的 HTML 类和 ID?例如:<body class="ember-application"><script id="metamorph-7-start" type="text/x-placeholder"></script>
  • 有一种方法可以使用已经预渲染的 DOM 重新初始化我的 Ember 应用程序而不会出现任何错误,并且在我通过我的 Node.js 后端交付它们之前不必使用一些正则表达式魔法修改 HTML 类?
  • 我什至可以恢复我的 Ember 应用程序的应用程序状态?

最佳答案

您收到此错误是因为您在同一 rootElement 中声明了多个 ember 应用程序:

// ok
App = Ember.Application.create({ rootElement: "#wizard" });
/// rootElement default to "body"
App = Ember.Application.create();
// throw error. we already have a ember app with rootElement equals to "body"
App = Ember.Application.create();

要重新初始化应用程序,您可以使用 reset方法:

App.reset();

关于javascript - 重新初始化 Ember 应用程序/恢复应用程序状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20004189/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com