gpt4 book ai didi

dom - 哪个 ember.js 组件负责将模板插入到 DOM 中?

转载 作者:行者123 更新时间:2023-12-03 03:47:59 24 4
gpt4 key购买 nike

我正在构建一个 ember.js/rails 应用程序。所有 Handlebars 模板都存储在 .js 文件中。我想了解当路由器更改状态时它们如何插入到 DOM 中。 ember 的哪一部分执行此操作?我如何告诉 ember 放置模板?

现在我只能将我的模板附加到 <body>我有一个jsFiddle here .

我知道设置rootElement在 Ember.Application 上,但是我希望应用程序控制页面的其他元素。

Handlebars /HTML:

<script type="text/x-handlebars" data-template-name="application">
<h2>I'm the content</h2>
<p>This should be inbetween the header &amp; footer</p>
<p><strong>time</strong> {{time}}</p>
</script>

<header>
<h1>Application</h1>
</header>
<article>
<div id="content"></div>
</article>
<footer>
<a href="http://blog.deanbrundage.com" target="_blank">by Dean</a>
</footer>

​JavaScript:

window.App = Ember.Application.create();

App.Router = Em.Router.extend({
initialState: 'root.home',
root: Em.Route.extend({
home: Em.Route.extend({
view: App.ApplicationView
})
})
});

App.ApplicationController = Em.Controller.extend({
time: Date()
});
App.ApplicationView = Em.View.extend({
templateName: 'application'
});

App.initialize();

最佳答案

Ember.js 中的当前实现将 ApplicationView 附加到应用程序的 rootElement,请参阅 here .

一种可能的解决方案是覆盖 ApplicationViewappendTo,请参阅 http://jsfiddle.net/pangratz666/m8L6Z/ :

JavaScript:

App.ApplicationView = Em.View.extend({
templateName: 'application',
appendTo: function(){
this._super('#content');
}
});

关于dom - 哪个 ember.js 组件负责将模板插入到 DOM 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11178729/

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