簡體   English   中英

Ember-幫助程序中的類綁定問題

[英]Ember - Issue with class binding within helper

我們升級到Ember 1.11.1和Ember驗證2.0.0-alpha.3。

調節器

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}}

使用上面的模板代碼,驗證將按預期進行,並且根據是否存在驗證錯誤來清空輸入的類。 但是,當刪除{{log}}行時,類綁定似乎丟失了,並且不再適當地更新輸入類。 請提供有關原因/修復的建議?

注意助手外部的類綁定(例如在標准div中)仍可正常工作

也許試試這個:

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

我在文檔中沒有看到classBinding而是classNameBindings ,我不確定在此過程中是否不贊成使用某些東西。

我懷疑classBinding不會觸發要更新的屬性,我似乎回想起在余燼驗證上與此有關的一些問題,但並非總是觸發。 看看https://github.com/aceofspades/ember-validations/commit/85ecaa348f2a1ccfb52f614037c4b4dbf77bceb4 ,看看是否有幫助。

從更高的層次來看,我認為您會經常重復此模式,並根據與特定字段的錯誤聯系添加類名。 我個人可能會花一些時間尋找或構建用於處理余燼驗證的注釋的輸入組件,在這里您可以具有fieldName屬性,並讓它查看相應的errors.validation.${fieldName} JS中的編碼可能有助於或至少使其更易於調試。

與各個字段不完全相關,但可能對您有所幫助,特別是轉向HTMLBars語法,即

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM