我有一个使用 ng-options 填充的选择列表。它还有一个“默认”选定项,有点像“占位符”,因为列表没有实际的“占位符”属性。
但是,我想要完成的是只有第一个(占位符值)具有比选择列表中的所有其余选项更浅的字体颜色,这与文本输入中的占位符属性的浅色字体非常相似有。
我得到了这个工作,但没有写指令。我想将此代码移植到指令中,以便它更符合“Angular Way”并且在我的站点中更可重用。
任何帮助将非常感激!请参阅下面的代码:
的HTML:
<select
ng-model="priority"
id="priority" name="priority"
class="span7"
required
ng-options="p.Description for p in priorities"
ng-class="appliedClass()">
<option value="" selected>select priority</option>
</select>
CSS:
.select-placeholder {
color: #999;
}
JS:
/*
Watches the 'priority' select list for changes
*/
$scope.$watch('priority', function(value) {
// value of the <option> element from the select list
var selectedValue = value;
// applies the 'select-placeholder' css class to ng-class
// if the selected item is the default (placeholder) item.
$scope.appliedClass = function() {
if (selectedValue === undefined) {
return 'select-placeholder';
}
};
});