2015-05-14 19 views
1

我們已升級到Ember 1.11.1和Ember-validations 2.0.0-alpha.3。Ember - 幫助程序中的類綁定問題

控制器

export default Ember.Controller.extend(EmberValidations.Mixin, { 
    canValidate: true, 
    validationModel: Ember.computed.alias("model"), 
    validations: { 
    'validationModel.name': { 
     presence: { 'if': 'canValidate', message: 'Please enter a name'}, 
    }, 
    }, 
} 

模板

{{log "error value" errors.validationModel.name}} 
{{input classBinding="errors.validationModel.name:app_input_box_error:app_input_box" placeholder="Document Name" value=model.name}} 

有了上面的模板代碼,驗證工作正常,並取決於是否有一個驗證輸入的類swopped出錯誤與否。但是,當{{log}}行被刪除時,類綁定似乎會丟失,輸入類不再適當更新。有關原因/修復的任何建議嗎?

注意在幫助者外面的類綁定例如在一個標準的DIV繼續正常工作

+0

作品:2.0.0-α。 3和燼:1.11.1! 剛剛創建了一個新的應用程序並粘貼了您的模板/控制器,並創建了一個返回{name:'test'}的簡單路線。 - >也許你可以發佈一個jsbin? – enspandi

回答

1

也許試試這個:

{{input classBinding="errors.validationModel.name:app_input_box_error:app_input_box" placeholder="Document Name" value=validationModel.name}} 
+0

嗨,謝謝你的回答,但問題不在於價值的約束力。它與類屬性的綁定。 – RunLoop

0

我不會在這個文檔中看到classBindingclassNameBindings,我不知道有什麼東西在前進的道路上廢棄了。

我懷疑classBinding沒有觸發要更新的屬性,我似乎想起了一些問題,在這個燼驗證在一個點上並不總是觸發。看看https://github.com/aceofspades/ember-validations/commit/85ecaa348f2a1ccfb52f614037c4b4dbf77bceb4,看看是否有幫助。

從更高的層面來看,我會認爲你會經常重複這種模式,根據與特定領域的錯誤關聯添加類名。就我個人而言,我可能會花費一些時間尋找或構建處理注入驗證的輸入組件,您可以在其中擁有fieldName屬性,並查看相應的errors.validation.${fieldName}。 JS中的編碼可能有助於調試,或者至少使調試更容易。

This沒有精確與個人領域,但也可能是對您有所幫助,特別是移動到HTMLBars語法,即在我身邊與Ember-驗證

{{input class="{{if errors.validationModel.name 'app_input_box_error' 'app_input_box'}}"}}