【问题标题】:How to set hardcoded select value to value instead of null in AngularJS?如何在AngularJS中将硬编码的选择值设置为值而不是null?
【发布时间】:2023-04-02 02:47:01
【问题描述】:

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

这无需将 "None selected" 对象推送到我绑定到的实际项目集合或使用“保存功能”清理对象。

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


Fiddle explaining the problem

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

【问题讨论】:

  • 我不确定是否有干净的解决方案。 AngularJS 倾向于歧视<option> 支持ng-option。我在个人显示之前将数组与默认值连接起来。
  • 嗯,你给了我一个想法。我可以使用一个前置过滤器来前置一个默认对象,这至少可以防止我修改集合。

标签: javascript html angularjs data-binding


【解决方案1】:

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

过滤器:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    相关资源
    最近更新 更多