首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用HTMLBars绑定静态和动态类

用HTMLBars绑定静态和动态类
EN

Stack Overflow用户
提问于 2015-06-28 16:16:39
回答 1查看 678关注 0票数 4

我试图将静态类“窗体-控件”和动态属性值“颜色”绑定到输入助手的类属性,但是,我使用的语法只是将其输出到呈现的DOM元素

代码语言:javascript
复制
class="form-control {{color}}" 

而不实际将'color‘的值绑定到class属性。我知道这是将普通DOM元素中的静态和动态类与HTMLBars绑定的方法,但是对于使用大括号的元素是否有不同的语法呢?

我使用的语法:

代码语言:javascript
复制
{{input class="form-control {{color}}" value=property.value type="text"}}
EN

回答 1

Stack Overflow用户

发布于 2015-06-28 18:23:12

双大括号语法调用工具栏中的助手或路径。但是,在助手内部,您不能使用它们来调用子表达式。相反,您必须使用括号来调用子表达式。例如:

不对

代码语言:javascript
复制
{{input value={{uppercase user.name}} }}

对,是这样

代码语言:javascript
复制
{{input value=(uppercase user.name) }}

因为手柄不允许用动态值插值文字值。您需要使用一些自定义助手来实现您想要的目标。EMB1.3.2附带了一个concat助手,所以您可以像这样使用它:

代码语言:javascript
复制
{{input class=(concat "form-control " color) value=property.value type="text"}}

注意"form-control“类末尾的空格,这是必需的,因为concat助手目前没有添加任何分隔符。

如果您使用的是旧版本,您可以创建一个join-params助手来为您处理这个问题:

app/helpers/join-params.js

代码语言:javascript
复制
import Ember from 'ember';

export function joinParams(params) {
  return params.join(' ');
}

export default Ember.HTMLBars.makeBoundHelper(joinParams);

然后在“窗体控制”类的末尾不加空格地使用它。

代码语言:javascript
复制
{{input class=(join-params "form-control" color) value=property.value type="text"}}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31101967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档