That's correct, you can only have one hard-coded element. <option ng-repeat>
can technically be done, but that method only cleanly supports binding to strings, so it would get very kludgey to bind to objects, as you're doing.
You say you can't add "None" to the data, but you can do the next best thing: prepend it to the array ng-options is iterating across, using a filter:
app.filter('addNone', function () {
return function(input) {
var newArray = input.slice(0); //clone the array, or you'll end up with a new "None" option added to your "values" array on every digest cycle.
newArray.unshift({ name: "None" });
return newArray;
};
})
Then use the filter like this:
<select class="form-control" ng-options="value.name as value.name for value in filter.values | addNone" ng-model="filter.selected" ng-change="goSearch()">
<option value="" disabled>{{filter.name}}</option>
</select>
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…