2014-04-15 45 views
1

這是一個AngularJS應用(1.2.16)。我瀏覽到一個對話框來編輯一些項目。其中一個控件是多SELECT具有下列可見值:AngularJS SELECT不驗證正確

incident 
work order 

這些可見值對應於以下數據值:

INCIDENT 
WORK_ORDER 

這是通過使用ng-options=" ... as ... for ... in ... "圖案進行,使用枚舉:

var FlexFieldSubjectTypeEnum = { 
    INCIDENT:{name:"INCIDENT", description:"incident"}, 
    WORK_ORDER:{name:"WORK_ORDER", description:"work order"} 
} 

如果有一種形式非常如下:

<form ng-submit="save(formName)" name="formName" class="form-horizontal"> 

    ... 

    <div class="control-group"> 
     <label class="control-label">Subject type:</label> 
     <div class="controls"> 
      <select name="subjectType" 
       ng-options="type.name as type.description for type in getEnumAsArray('FlexFieldSubjectTypeEnum') | orderBy:'name'" 
       ng-model="entity.subjectType" 
       required></select> 
     </div> 
    </div> 

現在,如果對話框從後端加載項目($scope.entity),並且entity.subjectType設置爲列表中的第一個項目,則表單驗證將其標記爲未設置。我有很多其他對話框有類似的結構,並沒有在其他地方看到這個問題。

enter image description here

如果從後端的點返回到第二項(WORK_ORDER)的項目,這在SELECT(「work order」)是很好的表示,並且沒有驗證錯誤。

使用requiredng-required="true"時,問題確實存在相等。

如果我刪除了required屬性的問題不存在,但隨後的現場也突然變得可選的,這不是我想要的東西。

你的幫助非常感謝!

+0

是你'納克= options'只是一個錯字在這裏使用?或者實際上你是如何在你的代碼中擁有它的? –

+0

這確實是一個錯字,我糾正了它。 –

回答

1

差不多一個月後,與同時從引導V2.2.2升級到V3.1.1問題就消失了。