如何在AngularJS中将硬编码的选择值设置为value而不是null

How to set hardcoded select value to value instead of null in AngularJS?

本文关键字:设置 value null 选择 AngularJS 编码      更新时间:2023-09-26

我试图在AngularJS中硬编码<select>的默认值,将值设置为0而不是null

无需将"None selected"对象推送到我绑定的实际项集合中,也无需使用"save函数"对对象进行消毒。

用合适的值而不是null来实现硬编码的默认选项,最优雅的方法是什么?


解释问题

如果你选择了一个父元素,然后选择默认值,你会得到一个空的parentId而不是0。

我设法通过使用前置过滤器来解决这个问题,该过滤器将硬编码的选择值作为参数。

过滤器:

myApp.filter('prepend', function() {
    return function(input, prependObj) {
        var out = [prependObj];
        out = out.concat(input);
        return out;
    };
}); 
示例用法:

<select ng-model="editItem.parentId" ng-options="i.id as i.title for i in (items | prepend:{id:0, title:'No parent'})">

JSFiddle