我正在更改我的代碼以在XForms中使用綁定(這比在任何地方使用節點集都更好),但是我收到了錯誤。XForms綁定元素錯誤
我收到錯誤信息是:「錯誤:錯誤的XForms(8):ID(data_criterion)並不是指一個bind元素......」
從教程/指南我一直在用,似乎好像這應該起作用,但顯然我錯過了一些東西! (順便說一下,我正在模擬我的綁定代碼後,在這裏的例子:http://en.wikibooks.org/wiki/XForms/Bind)
我原本以爲這個問題是由於我使用xf:select控件而不是xf:輸入像例子,但即使一次我把我的代碼弄糊塗到最簡單的代碼,我仍然收到錯誤!
這是我使用的型號代碼:
<xf:model id="select_data">
<xf:instance id="criteria_data" xmlns="">
<file>
<criteria>
<criterion></criterion>
</criteria>
</file>
</xf:instance>
<bind id="data_criterion" nodeset="instance('criteria_data')/criteria/criterion"/>
</xf:model>
至於UI代碼,這是我有:
<xf:input bind="data_criterion">
<xf:label>Enter criteria:</xf:label>
</xf:input>
我收到錯誤信息是:「錯誤:的XForms錯誤(8):id(data_criterion)沒有引用綁定元素...「
任何人都有任何洞察到問題是什麼?另外,是否有特殊用法的綁定和xf:select(帶有xf:itemset)控件,我應該知道的? (我最終在我的窗體上使用了很多xf:select控件..)
在此先感謝!
編輯:
我跑的代碼通過這個validator,我看到此消息(指的是結合線): 「警告:如果下面的元件已應用XForms名稱空間?:綁定(第66行)」
我看不出使用結合是如何更好的做法。如果您沒有任何元素的驗證規則,那麼您不需要綁定,也不需要編寫它。較少的代碼意味着更少的錯誤。 – Tambet 2010-06-04 08:41:31
我看到它的方式,就像使用變量和較少的「硬編碼」。這樣,如果模型發生變化,我不必搜索整個文檔就可以更改每個應該更改的節點集。這在修改和維護代碼後可能會導致很多頭痛和錯誤。使用綁定意味着文檔只有一個變化,而沒有它們,它可能是一百!對?所以我相信這是更好的做法。 (加上我讀了它的地方;)哈哈。 – developer 2010-06-04 14:35:00
表示同意。我認爲關鍵是「使用綁定更好的實踐」並不一定總是如此。添加一個綁定會增加一個間接級別,在某些情況下,這意味着您有更多的代碼來編寫,讀取,維護和理解,而且有限的好處。 – avernet 2010-06-04 16:47:21