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
設置爲列表中的第一個項目,則表單驗證將其標記爲未設置。我有很多其他對話框有類似的結構,並沒有在其他地方看到這個問題。
如果從後端的點返回到第二項(WORK_ORDER
)的項目,這在SELECT
(「work order
」)是很好的表示,並且沒有驗證錯誤。
使用required
或ng-required="true"
時,問題確實存在相等。
如果我刪除了required
屬性的問題不存在,但隨後的現場也突然變得可選的,這不是我想要的東西。
你的幫助非常感謝!
是你'納克= options'只是一個錯字在這裏使用?或者實際上你是如何在你的代碼中擁有它的? –
這確實是一個錯字,我糾正了它。 –