具有角度ui bootstrap typeahead动态选项的角度形式

时间:2016-09-29 16:24:30

标签: angular-formly

我试图获得棱角分明的形状和角度ui bootstrap typeahead玩得很好。我想要的是从http get请求填充我的选择列表,每次对select字段进行更改时,它应该触发一个函数来获取新的选项列表。

typeahead="address for address in getLocation($viewValue)"

我不确定我是否正确使用了jsbin,但是我们走了。

JsBin of my problem

这是一个单独使用打字机的掠夺者。

dynamic typeahead works here

我甚至无法触发getLocation函数。我试过vm.getLocation,但没有骰子。

非常感谢帮助!

感谢。 ; - )

2 个答案:

答案 0 :(得分:0)

Async select options Watchers Example

最初选项应该是一个空数组,并如上所示传入。然后你需要添加一个观察器来更新$ scope.options.templateOptions.options作为其调用。

但是,我仍然无法使用typeahead来回答功能。在typeahead文档中,您可以使用回调来了解它何时被选中。

typeahead-on-select='onSelect($item, $model, $label)'

永远不会调用控制器中的onSelect函数。

答案 1 :(得分:0)

这是一个工作示例...我将Async formly示例与UI Bootstrap示例结合起来...注意它现在变为item.question for item而不是item for item ...

不确定为什么会这样,我检查了它的格式与Async示例的格式相同...尝试各种方法让它显示完整的JSON对象但没有运气......

如果我将它设置为item for item,则整个JSON对象显示在模型中,但搜索返回[object Object],否则它只是我设置为标签的单行,我猜这是同样的方式它显示正常,所以没关系......

无论如何,它有效

http://plnkr.co/IjuJ0HPGCKfZAOrK0u3z?p=preview

      app.run(function(formlyConfig) {
          formlyConfig.setType({
              name: 'typeahead',
              template: '<input type="text" ng-model="model[options.templateOptions.label]" uib-typeahead="item.question for item in to.options | filter:$viewValue | limitTo:15" class="form-control">',
              wrapper: ['bootstrapLabel', 'bootstrapHasError'],
    });
  });