更新UI引导程序无法向Typeahead添加新建议

时间:2017-05-30 22:02:45

标签: angular angular-ui-bootstrap

我需要动态更新先行建议。预先输入并不反映它所绑定的数组的变化。我该如何解决这个问题?我正在使用ui bootstrap

这是jsfiddle复制,添加值,尝试在tyeahead中输入,无更新

angular.module('ui.bootstrap.demo', ['ui.bootstrap'])
  .controller('ModalDemoCtrl', function($rootScope, $scope, $log, $uibModal) {

    $scope.addName = function() {
        console.log("adding name" , $scope.name);
        $scope.fieldNames.push($scope.name);
    }

    $scope.fieldNames = [{name:"Paul"},{name:"Pamela"}, {name:"Adam"}, {name:"Atrium"}];
});

1 个答案:

答案 0 :(得分:0)

一些事情

  1. 您正在将字符串推入数组中,您应该使用name属性推送对象

  2. 您对ng-repeat有一个限制过滤器,限制了您的可见建议,您可能想要将其删除,或至少将其删除

  3. 而不是

    $scope.addName = function() {
        console.log("adding name" , $scope.name);
        $scope.fieldNames.push($scope.name);
    }
    

    $scope.addName = function(newName) { // <-- passing the $scope.name from the template
        console.log("adding name" , newName);
        $scope.fieldNames.push({ name: newName});
    }
    

    并编辑

    uib-typeahead="field as field.name for field in fieldNames | limitTo:4 | filter:{name:$viewValue}"
    

    uib-typeahead="field as field.name for field in fieldNames | filter:{name:$viewValue}"
    

    Here is an updated fiddle