2015-01-11 69 views
0

我想知道在某種事件中,如何導入到dom中的某個組件。即如果你有一個帶有電子郵件和密碼的表單,並且對錶單進行驗證,那麼你如何進入電子郵件分區輸入一個{{error-component message = message}},其中的信息將是「不是有效的電子郵件」,並進入密碼格(或TD)輸入相同的組件,用不同的消息。在事件中追加燼元素

算法解釋:

的onsubmit(){ validateForm: 如果電子郵件地址無效{importComponent( '#emailDiv', 「郵箱無效」)} 如果密碼不是有效的{importComponent('#passDiv ',「密碼沒有足夠的字符」)} }

回答

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。

+0

錯誤只是一個例子,我將來需要這個。 「編程」是谷歌關鍵詞我想要的:http://stackoverflow.com/questions/20378889/how-to-programatically-add-component-via-controller-action –