2016-03-29 18 views
0

我有一種情況,我不認爲我可以輕鬆地在codepen上重現,但我會嘗試儘可能地點,任何幫助或方向讚賞。ngMessages首先給出錯誤,然後解決

這是形式摘錄(I藏的類保持示例簡單/可讀)

當文本框的值被改變在第一時間(當i輸入內容第一次)它給出了一個GroupsProfile.name.$error錯誤導致班級「有錯誤」彈出。現在,如果我再次更改值(即使是相同的文本),我一切都好。

這與ng-change或ng-click沒有任何關係,因爲我試圖刪除它們,但仍然是相同的。

<div class="{{(GroupsProfile.name.$error && GroupsProfile.name.$touched) ? ' has-error ' : ''}}"> 
    <input type="text" ng-model="grp.name" name="name" required ng-change="check_grp()"/> 
    <div ng-messages="GroupsProfile.name.$error" ng-if="GroupsProfile.name.$touched"> 
     <div ng-message="required">Group Name is required.</div> 
    </div> 
    </div> 

一點點辛苦工作,我已經創建了一個pen

檢查問題加載筆然後寫在外地的信,並搬出。你也會看到錯誤

重現錯誤,你將不得不重新加載頁面

+0

試着把{{GroupProfile.name}}放在你的div上方,看看是否需要是真的。 – Scottie

+0

{{GroupsProfile.name。$ error}}讓我需要true,我試過.... {{GroupsProfile.name}}放在任何地方殺死角度 –

+0

什麼是GroupsProfile?這是否是ng形式? – Scottie

回答

1

你的問題是這樣的一行:

<div class="{{(GroupsProfile.name.$error && GroupsProfile.name.$touched) ? ' has-error ' : ''}}"> 

具體來說,GroupsProfile.name $錯誤。除非$ error爲null,否則這將評估爲true。

起初,$ error包含{required:true}。當你開始輸入時,這將被替換爲{}。 {}不爲null,所以它適用於你的has-error類。

你想,而不是這是什麼:

<div class="{{(GroupsProfile.name.$error.required && GroupsProfile.name.$touched) ? ' has-error ' : ''}}"> 

這應該可以解決您的問題。

另外,您應該使用ng-class指令。

+0

非常感謝,這解決了我的問題。 –

相關問題