2014-05-19 65 views
0

我當前的代碼如下所示:爲什麼我需要使用AngularJS的<form>是否有任何理由?

<form name="home.forms.modal"> 
     ... 
     <input ng-model="home.modal.data.text"></input> 
     <input ng-class="{error: home.forms.modal.name.$error}" 
       ng-model="home.modal.data.name" 
       name="name" 
       ng-minlength="5" 
       ng-required="true" /> 
     ... 
    </form> 
    <button ng-disabled="home.forms.modal.$invalid" 
      ng-click="home.modalSubmit(home.modal.data)">Submit</button> 

我注意到最近有與形式的信息的變化。我想知道的是在AngularJS中有什麼需要我使用表單元素。如果是這樣,那麼我怎麼能改變上面的代碼,所以它只能用於DIV?

回答

2

可以使用NG-形式屬性的元素上

<div ng-form name="home.forms.modal"> 
    ... 
    <input ng-model="home.modal.data.text"></input> 
    ... 
</div> 
    <button ng-click="home.modalSubmit(home.modal.data)">Submit</button> 
+0

感謝您的快速回復。我稍微更新了我的問題。有了額外的東西,如驗證和$無效檢查你的答案仍然適用? –

+1

是的,它的確如此。這條路線的優點在於,你可以在每個其他元素中嵌入ng-form屬性的元素(而瀏覽器不允許在另一個表單元素中嵌入表單元素)。 – MDiesel

+0

查看此鏈接的信息:https://docs.angularjs.org/api/ng/directive/form獲取更多信息 – MDiesel

1

在客戶端驗證是通向地獄之路,你應該在$ HTTP .error回調由服務器驗證錯誤,並告訴他們給客戶。

您可能需要使用帶有諸如ui-mask之類的指令的表單來獲取正確的值。

1

使用表單標記在語法上是正確的,並且當您嘗試將表單元素(輸入/按鈕/文本區域)放入頁面而不被表單標記包圍時,某些瀏覽器(IE)無法正確顯示內容。

相關問題