如何在ng-option中使用空值,而不是NULL

时间:2016-08-29 14:42:45

标签: javascript angularjs ng-options

所以我是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选择按照我想要的方式工作。选择all选项后,过滤器将显示所有级别,all选项的值为“”。但是,使用ng-option的第2和第3选择是将值设置为NULL而不是“”。有没有办法改变这个或者我必须添加类似“if null then serch.castingTime ==''”的代码

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:0)

这是我最终使用的工作,如果有更好的方法这样做让我知道。但这暂时有效。

app.filter("removenull", function(){ return function(object, query){
    if(query.castingTime==null){
        query.castingTime=""
    }
    if ( query.duration==null) {
              query.duration=""
    }
    return object;
}});