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

时间:2014-03-17 10:37:42

标签: javascript html angularjs data-binding

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

这不需要将“None selected”对象推送到我绑定的实际项目集合或具有“保存功能”清理对象。

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


Fiddle explaining the problem

如果您选择父级然后选择默认值,您将获得null parentId而不是0。

1 个答案:

答案 0 :(得分: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