【问题标题】:add new item to typeahead if it's not on the list如果它不在列表中,则将新项目添加到预先输入
【发布时间】:2014-08-06 20:48:17
【问题描述】:

我正在使用 angular bootstrap typeahead。我想进行增强,如果该项目不在列表中,用户可以添加一个新项目(可能正在键入的项目显示在列表底部,带有加号按钮,或类似的东西) .

有没有一种简单的方法来进行这种增强?如果没有,还有其他方法可以做到这一点吗?

【问题讨论】:

    标签: angularjs angular-ui-bootstrap bootstrap-typeahead


    【解决方案1】:

    不确定这是否是您要查找的内容,但您可以使用在输入框中保存当前值的可用$viewValue 变量来执行此操作。您可以将其附加到预输入结果中。如果已选中,请将其添加到结果中以供将来使用...

    var states = ['Alabama', 'Alaska' /* , ... */];
    $scope.getStates = function(current) {
        var statesCopy = states.slice(0);
        if (current) {
            statesCopy.unshift(current);
        }
        return statesCopy;
    };
    $scope.onSelect = function (item) {
        states.push(item);
    };
    
    <input type="text" ng-model="selected" 
    typeahead="state for state in getStates($viewValue) | filter:$viewValue | limitTo:8" class="form-control"
    typeahead-on-select="onSelect($item)">
    

    Live Demo

    请注意,您需要做更多的工作来处理重复或实时数据源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-02
      • 2010-11-01
      • 2020-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-30
      • 1970-01-01
      相关资源
      最近更新 更多