我正在嘗試使用Angular指令來創建自定義輸入字段類型。例如,我有一個名爲「持續時間」的類型,它繪製了三個單獨的小時,分鍾和秒字段。我試圖使用該指令作爲輸入元素的屬性,並且該指令替換了輸入元素。如何有條件地顯示Angular指令?
例如,在下面的代碼:
<input duration>
將呈現爲與<div>
它內部的多個輸入,以及原始輸入將是出來的畫面。
我正在運行一個ngRepeat
循環通過不同類型的幾個表單域,其中包括duration
。我想找到一種方法,只需要我在HTML中輸入一個輸入,並且僅在字段應爲duration
類型時應用duration
屬性。我試過如下:
<div ng-repeat="field in fields">
<input type='{{field}}' ng-attr-duration="field==='duration'">
</div>
的與該代碼的問題是,每一個元素都呈現爲duration
因爲ng-attr-duration
被評估爲duration='false'
當字段不長,這會觸發我的指令。
有沒有辦法讓我有條件地應用指令而不必定義多個<input>
來減少我的代碼中的冗餘?
您是在尋找ng-show?隱藏/顯示基於表達式的元素:https://docs.angularjs.org/api/ng/directive/ngShow – Boland
現在我正在用ng-if解決它(ng-if實際上從DOM中刪除元素而ng-show只能通過CSS隱藏它),這有助於驗證,否則我會隱藏所需的字段,並且表單永遠不會被視爲有效。但無論哪種方式,我想要一種方法,不需要在代碼中添加兩個單獨的輸入元素以避免冗餘(如果可能的話) – Zak