0

我在處理複雜對象驗證時遇到問題Backbone.Validation。每個文件:使用複雜對象進行主幹驗證

Validating complex objects is also supported. To configure validation rules for objects, use dot notation in the name of the attribute, e.g 'address.street'.

我拿了小提琴的例子,並添加了一個複雜的對象,但我不能讓它的工作。

var SignUpModel = Backbone.Model.extend({ 
    defaults: { 
     terms: false, 
     gender: '', 
    }, 
    validation: { 
     username: { 
      required: true 
     }, 
     email: { 
      required: true, 
      pattern: 'email' 
     }, 

     // complex object 
     'address.zip': { 
      required: true 
     }, 

它看起來像在輸入元素的name點符號,因爲我得到這個錯誤:

Uncaught Error: Syntax error, unrecognized expression: [name=address.zip] 

Have a look at the fiddle here.

回答

0

如果我沒看錯的屬性名唐不接受(。),所以你不能擁有這個名字。但我不舒服。

當文檔顯示「驗證複雜對象也受支持。要配置對象的驗證規則,請在屬性名稱中使用點符號,例如'address.street'。我想這個地址有一個叫做街道的屬性。這真的很有意義。

將屬性名稱更改爲「address-zip」即可工作。

希望它有幫助。

此處更多關於屬性名稱的參考。 What characters are allowed in an HTML attribute name?

+0

添加'address-zip'將只是尋找模型對象上的淺層變量,就像電子郵件或用戶名一樣。 – captDaylight 2014-08-29 17:38:12

+0

複雜的對象我認爲他的意思是嵌套的對象,哪個地址zip不會解決 – captDaylight 2014-08-29 17:39:10

+0

但是你的意思是什麼名稱爲「address.zip」?請問地址有更多的屬性?它不只是像其他人一樣變量嗎? – rcarvalho 2014-08-29 17:47:21