自动编译模板
优质
小牛编辑
133浏览
2023-12-01
如果你在 <script>
标签中编写模板,并且设置了特定的属性,那么 Framework7 会自动帮你编译所有的模板:
<script type="text/template7" id="myTemplate">
<p>Hello, my name is {{name}} and i am {{age}} years old</p>
</script>
其中:
type="text/template7"
指定了这个script的内容会被 Framework7 当做一个 Template7 模板自动编译id="myTemplate"
是模板的id,后面可以通过这个id来方法这个模板
你需要在 初始化应用 的时候传入一个参数来启用自动编译模板功能:
var myApp = new Framework7({
//Tell Framework7 to compile templates on app init
precompileTemplates: true,
});
Template7.templates / myApp.templates
应用初始化完成之后,所有的编译好的模板都可以通过 Template7.templates
对象来访问,他还有一个别名是 myApp.templates
。模板的名字就是 <script>
标签上的 id 属性
所以,如果我们有下面这些模板:
<script type="text/template7" id="personTemplate">
<p>Hello, my name is {{name}} and i am {{age}} years old</p>
<p>I work as {{position}} at {{company}}</p>
</script>
<script type="text/template7" id="carTemplate">
<p>I have a great car, it is {{vendor}} {{model}}, made in {{year}} year.</p>
<p>It has {{power}} hp engine with {{speed}} km/h maximum speed.</p>
</script>
当应用初始化完成之后,我们可以在JS中这样访问:
var myApp = new Framework7({
//Tell Framework7 to compile templates on app init
precompileTemplates: true
});
// Render person template to HTML, its template is already compiled and accessible as Template7.templates.personTemplate
var personHTML = Template7.templates.personTemplate({
name: 'John Doen',
age: 33,
position: 'Developer',
company: 'Apple'
});
// Compile car template to HTML, its template is already compiled and accessible as Template7.templates.carTemplate
var carHTML = Template7.templates.carTemplate({
vendor: 'Ford',
model: 'Mustang',
power: 300,
speed: 280
});
如果你使用了自定义的辅助方法和模板自动编译,请确保你初始化应用之前注册他们。