如何在 ng-option 中有一个空白值,而不是 NULL
how to have a blank value in ng-option, not NULL
所以我是 angularjs 的新手,我在任何地方都找不到如何做到这一点:我想使用 ng-options 并有一个空白值作为所有选项。
<h5 style="display:inline;">Level </h5>
<select name="Levelfilter" ng-model="search.level">
<option selected value="">all </option>
<option value="0">Cantrip </option>
<option value="1">1st </option>
<option value="2">2ed </option>
<option value="3">3rd </option>
<option value="4">4th </option>
<option value="5">5th </option>
<option value="6">6th </option>
<option value="7">7th </option>
<option value="8">8th </option>
<option value="9">9th </option>
</select>
<h5 style="display:inline;">duration</h5>
<select name="durationfilter" ng-options="c.duration as c.duration for c in allspells.spells | unique:'duration'" ng-model="search.duration">
<option selected value="">all </option>
</select>
<h5 style="display:inline;">Casting Time </h5>
<select name="castingTimefilter" ng-options="c.castingTime as c.castingTime for c in allspells.spells track by c.castingTime | unique:'castingTime'" ng-model="search.castingTime" ng-init="search.castingTime=''">
<option selected value="">all </option>
</select>
Levelfilter select 以我想要的方式工作。当 all 选项为 selected 时,筛选器显示所有级别并且 all 选项的值为“”。但是,使用 ng-option 的第二个和第三个 select 将值设置为 NULL 而不是“”。有没有办法改变这个,或者我必须在代码中添加类似 "if null then serch.castingTime == ''"
在此先感谢您的帮助。
这是我最终使用的解决方法,如果有更好的方法,请告诉我。但这暂时有效。
app.filter("removenull", function(){ return function(object, query){
if(query.castingTime==null){
query.castingTime=""
}
if ( query.duration==null) {
query.duration=""
}
return object;
}});
所以我是 angularjs 的新手,我在任何地方都找不到如何做到这一点:我想使用 ng-options 并有一个空白值作为所有选项。
<h5 style="display:inline;">Level </h5>
<select name="Levelfilter" ng-model="search.level">
<option selected value="">all </option>
<option value="0">Cantrip </option>
<option value="1">1st </option>
<option value="2">2ed </option>
<option value="3">3rd </option>
<option value="4">4th </option>
<option value="5">5th </option>
<option value="6">6th </option>
<option value="7">7th </option>
<option value="8">8th </option>
<option value="9">9th </option>
</select>
<h5 style="display:inline;">duration</h5>
<select name="durationfilter" ng-options="c.duration as c.duration for c in allspells.spells | unique:'duration'" ng-model="search.duration">
<option selected value="">all </option>
</select>
<h5 style="display:inline;">Casting Time </h5>
<select name="castingTimefilter" ng-options="c.castingTime as c.castingTime for c in allspells.spells track by c.castingTime | unique:'castingTime'" ng-model="search.castingTime" ng-init="search.castingTime=''">
<option selected value="">all </option>
</select>
Levelfilter select 以我想要的方式工作。当 all 选项为 selected 时,筛选器显示所有级别并且 all 选项的值为“”。但是,使用 ng-option 的第二个和第三个 select 将值设置为 NULL 而不是“”。有没有办法改变这个,或者我必须在代码中添加类似 "if null then serch.castingTime == ''"
在此先感谢您的帮助。
这是我最终使用的解决方法,如果有更好的方法,请告诉我。但这暂时有效。
app.filter("removenull", function(){ return function(object, query){
if(query.castingTime==null){
query.castingTime=""
}
if ( query.duration==null) {
query.duration=""
}
return object;
}});