簡體   English   中英

訪問Ember-Data的驗證錯誤

[英]Accessing Ember-Data's Validation Errors

當我的服務器返回422時,它會提示Ember Data創建InvalidError消息。 該消息可能如下所示:

The backend rejected the commit because it was invalid: username must be at least 4 characters long

此消息顯示在我的控制台中,但我想在瀏覽器中顯示它,以便用戶可以看到它。 但是,如何在模板中訪問此錯誤? 我找不到有關Ember Data錯誤處理的任何文檔。

您的JSON應如下所示:

 {
    "errors":
    {
       "body":["can\'t be blank"],
       "title":["should begin with a capital letter"]
    }
 }

然后,您可以顯示所有錯誤消息,如下所示:

{{#each errors.messages}}
  <div>
    <p class="label label-danger">{{this}}</p>
  </div>
{{/each}}

此外,您只能顯示特定值的消息(例如title示例),如下所示:

{{#each error in errors.title}}
  <div><p class="label label-danger">{{error.message}}</p></div>
{{/each}}

如果您只想表明出現問題,您可以這樣做:

{{#if errors}}
  <p>Some errors occurred</p>
{{/if}}

請注意,視圖中的范圍可能不同。 可能需要使用model.errors或類似方法來訪問errors對象。

在這里你可以找到一個完整的例子jsBin

isValidfalse時,模型的errors屬性應包含任何錯誤。 查看ember-data中的adapterDidInvalidate方法。

嘗試

DS.InvalidError({username:"username must be at least 4 characters long"}).

從文檔:

必須使用單個對象構造DS.InvalidError ,該對象的鍵是無效的模型屬性,其值是相應的錯誤消息。 例如:

  return new DS.InvalidError({
    length: 'Must be less than 15',
    name: 'Must not be blank'
  });

暫無
暫無

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

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