将 Ember.js 用于单页网站(不是真正的网络应用程序)

Using Ember.js for Single Page Website (not really a web app)

我只想尝试将 Ember.js 用于我正在做的网站(免责声明: 我是一名 Java 网络开发人员,GWT)。

到目前为止,我尝试的是将整个 body 标签代码打成这样

<body>
  <script type="text/x-handlebars"> 
      <!-- The whole page -->
  </script>
</body>

现在,我只想利用 Ember.js 诸如组件、模型和验证之类的东西用于我的网站。

这里是 运行 涉及的依赖项:

   <script  src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
   <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.lazyload/1.9.1/jquery.lazyload.min.js" type="text/javascript"></script>
   <script src="js/vendor/modernizr-2.6.2.min.js"></script>
   <script src="js/jquery-ui.js"></script>
   <script src="js/plugins.js"></script>
   <script src="js/main.js"></script>

   <!-- Ember -->
   <script src="js/libs/handlebars-v3.0.0.js"></script>
   <script src="js/libs/ember-template-compiler-1.10.0.js"></script>
   <script src="js/libs/ember-1.10.0.debug.js"></script>
   <script src="js/app.js"></script>

app.js

App = Ember.Application.create();

App.Router.map(function() {

});

问题是,当我将 body 放入 x-handlebars 脚本时,以前可以使用的 jQuery 插件(如 bxslider、carousel 等)将无法使用脚本标签内的东西。

我的方法可能有什么问题?

在您的 <script type="text/x-handlebars">Script</script> 中呈现的内容是在您的 JQuery 代码具有 运行 之后呈现的。您可以通过使用 viewcomponent 中的 didInsertElement 事件修改为 运行 初始化呈现的视图中的元素所需的任何代码来解决此问题。

didInsertElement: function() {
    this.$().DoStuff();
}

Whosebug 上还有许多其他问题 - 例如, - 解决了类似的问题,因此您应该能够采用他们的方法。