【问题标题】:Why would EmberJS not render in my HTML / Handlebars on webkit browsers为什么 EmberJS 不会在 webkit 浏览器上的 HTML / Handlebars 中呈现
【发布时间】:2012-08-02 13:38:09
【问题描述】:

我启动了一个非常基本的 EmberJS 应用程序,我想在 phonegap 应用程序中使用它。以下代码在 FF 4 中运行良好,但在 Chrome 和 Safari 中,车把部分中的视图未更新。

Main JS 文件有如下代码。

(function(window) {
  function Main() {
    MainApp = Ember.Application.create({
      appname: "My App",
      ready: function() {
        console.log("hello from ember");
        app.initialize();
        app.deviceready();
      }
    });
  }
  window.Main = Main;
}(window))

我发现如果我删除了自执行功能,它会在 webkit 中渲染得很好

MainApp = Ember.Application.create({
  appname: "My App",
  ready: function() {
    console.log("hello from ember");
    app.initialize();
    app.deviceready();
  }
});

所以我想真正的问题是为什么将 Ember.Application.create() 包装到 Main() 函数中会导致 webkit 出现这个问题?

在我的 index.html 文件中,我有以下脚本块来执行 main.js

<script type="text/javascript">
  function init() {
    var mainApp = new Main();
  }
</script>

然后我的车把代码看起来像这样。

<script type="text/x-handlebars">
  <h1>hello from {{MainApp.appname}}</h1>
</script>

【问题讨论】:

    标签: cordova webkit ember.js


    【解决方案1】:

    解决办法是采取

    (function(window) {
      function Main() {
        MainApp = Ember.Application.create({
          appname: "My App",
          ready: function() {
            console.log("hello from ember");
            app.initialize();
            app.deviceready();
          }
        });
      }
      window.Main = Main;
    }(window))
    

    做起来

    (function(window) {
      MainApp = Ember.Application.create({
        appname: "My App",
        ready: function() {
          console.log("hello from ember");
          app.initialize();
          app.deviceready();
        }
      });
    })(window)
    

    这仍然会根据需要将 MainApp 分配给窗口/全局上下文,但会删除未初始化函数的依赖关系。我不确定您是如何在 HTML 中调用 init() 函数的,但它似乎从未真正为您初始化 new Main() 对象。

    【讨论】:

      猜你喜欢
      • 2011-02-21
      • 1970-01-01
      • 2019-03-11
      • 2011-04-01
      • 1970-01-01
      • 2012-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多