在事件上追加ember组件到div

时间:2015-01-11 20:41:20

标签: ember.js handlebars.js

我想知道,在某种事件中,你如何导入dom说一个组件。即如果您有一个带有电子邮件和密码的表单,并对表单进行验证,您如何进入电子邮件div输入{{error-component message = message}},其中的消息将是“Not a valid email”,并进入密码div(或td)输入相同的组件,使用不同的消息。

解释算法:

的onSubmit(){ validateForm: 如果电子邮件无效{importComponent('#emailDiv',“电子邮件无效”)} 如果密码无效{importComponent('#passDiv',“密码没有足够的字符”)} }

1 个答案:

答案 0 :(得分:1)

为什么不设置告诉模板是否呈现错误的属性?

在控制器或组件中:

emailErrors: [],

actions: {
  onSubmit: function() {
    if (/* email not valid */) {
      this.get('emailErrors').addObject('Email not valid');
    }
  }
}

在模板中:

{{input value=email}}
{{#each error in emailErrors}}
  {{error}}
{{/each}}

这应该被制作成更好的封装和更少重复的组件,但你明白了。我认为,以编程方式插入组件不是Ember Way。