Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 将新项目添加到typeahead,如果它是';它不在名单上_Angularjs_Angular Ui Bootstrap_Bootstrap Typeahead - Fatal编程技术网

Angularjs 将新项目添加到typeahead,如果它是';它不在名单上

Angularjs 将新项目添加到typeahead,如果它是';它不在名单上,angularjs,angular-ui-bootstrap,bootstrap-typeahead,Angularjs,Angular Ui Bootstrap,Bootstrap Typeahead,我用的是角度引导式打字机。我想做一个增强,如果项目不在列表中,用户可以添加一个新项目(可能正在键入的项目显示在列表底部,带有加号按钮或类似的内容) 有没有一种简单的方法来进行此增强?如果没有,是否还有其他方法可以做到这一点?不确定这是否是您正在寻找的,但您可以使用$viewValue变量来实现这一点,该变量可用于保存输入框中的当前值。您可以将其附加到typeahead结果中。如果选中,请将其添加到结果中以供将来使用 var states = ['Alabama', 'Alaska' /* , .

我用的是角度引导式打字机。我想做一个增强,如果项目不在列表中,用户可以添加一个新项目(可能正在键入的项目显示在列表底部,带有加号按钮或类似的内容)


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

不确定这是否是您正在寻找的,但您可以使用
$viewValue
变量来实现这一点,该变量可用于保存输入框中的当前值。您可以将其附加到typeahead结果中。如果选中,请将其添加到结果中以供将来使用

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)">
var states=['阿拉巴马州','阿拉斯加州'/*,…*/];
$scope.getStates=函数(当前){
var statesCopy=states.slice(0);
如果(当前){
无移位(当前);
}
返回状态检查;
};
$scope.onSelect=功能(项){
国家.推动(项目);
};

请注意,您必须做更多的工作来处理重复的或活动的数据源