如何在余烬中的部分内联车把中传递值

问题描述 投票:0回答:1

我有一个.html文件,其中包含以下代码:

<script type="text/x-handlebars" id="social"> 
    I'm partial content: {{label}}<br>
</script>

我进一步使用:

{{partial 'social' label="x"}}

上面是呈现文本“我是部分内容:” ...但不是从键“ label”传递的值('x')的原因

我不知道为什么这行不通?使用Handlebars 2.0和Ember 1.9(我知道旧版本,但是我正在从其他人那里编辑现有工具)。

ember.js handlebars.js partials
1个回答
0
投票

在大多数情况下,您可以想到一个有点像C宏的部分,因为它在模板编译期间被其内容替换了。您不会像使用label="x"那样使用绑定/自变量调用局部函数。而是,部分从呈现它的模板的范围解析其变量。换句话说,{{partial}}只是将给定模板放在当前范围内。

因此,如果您在路由模板中使用{{partial}},则需要在路由的相应label上设置controller的值(这是路由模板解析其变量的地方,即模板)。您可以在route文件的setupController挂钩中或在controllerinit函数中,或在控制器的计算属性中进行此操作,等等。

[如果在组件模板中使用{{partial}},则需要在组件的支持javascript文件中或通过将label作为组件参数来设置label的值。但是到那时,您应该只使用组件而不是局部组件。

请注意,在更高版本的Ember框架中,{{partial}}不是倡导的路径。组件是更好/更强大的可重用构造。如果您在此处构建了组件而不是部分组件,则可以完全传递label值。

© www.soinside.com 2019 - 2024. All rights reserved.