2016-12-29 31 views

回答

1

ngModel指令包含NgModelController的一個實例,其中包含數據綁定,驗證,CSS更新和值格式設置和解析的服務。如果ngModel本身不存在,驗證將不起作用。 要使表單驗證正常工作,需要使用name屬性和表單輸入控件(ngModel)將兩個表單實例發佈到範圍。以下來自Angular文檔的說明解釋如下:

表單是FormController的一個實例。表單實例可以使用name屬性可選地發佈到作用域中。

類似地,具有ngModel指令的輸入控件包含NgModelController的 實例。這樣一個控件實例可以是 ,通過在輸入控件上使用名稱屬性 作爲表單實例的屬性發布。 name屬性指定表單實例上的 屬性的名稱。

這意味着窗體和控件 的內部狀態可用於在視圖中使用標準綁定 原語進行綁定。

這允許我們上述例子中使用這些功能擴展:用戶用 控制相互作用之後顯示

定製錯誤消息(即,當$觸摸設置)定製錯誤消息顯示 在提交表單(提交設置$),即使用戶沒有 與控制

0

因爲沒有NG-型號,輸入元素未綁定到你的應用程序的範圍內,任何東西。

0

Angular擁有自己的上下文模型。 (範圍或別的東西)如果你在角度世界以外處理表單,表單不能從角度的角度得到任何信息。

如果您不想使用ng-model,請使用純javascript驗證方法。

0

ng-model="value"相互作用限定了該特定元素的值是從角的上下文。它在元素聲明的範圍內檢查value。例如,我們有onclick="call()"ng-click="call()"方法。 onclick事件搜索範圍外的角度範圍外的功能,ng-click事件搜索功能。

<div ng-app="app" ng-controller="Ctr" onclick="call()" ng-click="call()"></div> 


<script> 
    function call(){ 
     console.log('out of angular'); 
    } 
    angualr.app('app', function($scope){ 
    $scope.call = function(){console.log('insode angular')} 
    }) 
</script> 

在上面的代碼如果刪除onclick,然後ng-click打印「裏面的角」,如果刪除ng-click,然後onclick打印out of angular。如果兩者都將在那裏,則兩者都會被調用並打印。 以同樣的方式,如果刪除ng-model,您將失去對角度上下文和$ error中輸入值的控制,$ invalid不知道要驗證的內容。