2016-06-08 78 views
0

我創建了一個自定義指令,用於訪問表單的ID,以在相同驗證失敗時顯示消息。ng消息不會顯示在自定義指令中

指令代碼

<div> 
    <md-input-container> 
     <label class="inputLabel" translate>amount</label> 
     <input ng-model="order.amount" name="amount" type="text" required 
      max="availableAmount" 
      ng-disabled="disabled" ng-currency flex/> 
     <ng-messages flex for="dataForm.amount.$error" ng-if="dataForm.amount.$dirty"> 
     <ng-message when="max">max reached</ng-message> 
     </ng-messages> 
    </md-input-container> 
</div> 

用法:

<form id="dataForm"> 
    <custom-directive></custom-directive> 
</form> 

好像我無法訪問形式。或者angularmessage不能處理不同的範圍。

有沒有人有同樣的問題或想法? 謝謝

fyi .:我發現了下面的帖子,但我沒有想到我和那個人有同樣的問題。 angularjs ngMessages inside directive

我使用角1.4.8;消息1.4.8和角材料1.0.4

+4

您的指令是否有隔離範圍? 「dataForm」對象位於指令的外部範圍內,所以如果你有一個獨立的範圍(你應該),它是不可訪問的。 Angular支持多種形式,所以你可以用你自己的形式包裝你的指令中的md-input-container。 –

+0

是的,我使用隔離範圍。 謝謝,這是解決方案。 我用包裝了指令模板,一切都很好。 –

+0

非常好,我也發佈了這個答案,以幫助將在未來搜索它的人。 –

回答

2

如果指令有一個孤立的範圍,比它將不能訪問該NG-的形式控制器對象表格指示。

Angular支持多種規範形式,因此您可以使用form/ng-form簡單地將您的輸入內容包裝到指令中。

相關問題