UI Bootstrap Typeahead不会在ng-model中存储选择

时间:2016-04-14 21:10:12

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

好的,所以我使用了Ui-Bootstrap typeahead(https://angular-ui.github.io/bootstrap/#/typeahead)。

我使用firebase数组作为数据。

当我开始输入它时,我已经得到它过滤结果,我可以点击一个。

当我点击它时,它似乎不会将所选值存储在模型中。

我做错了什么?

我只是想在选择它之后将其保存在ng-model中。

<pre>{{newLink | json}}</pre>

<input type="text" ng-model="newLink" placeholder="Search for Pages" uib-typeahead="title as page.title for page in admin.content | filter: {title: $viewValue}" typeahead-show-hint="true" class="form-control"/>

我的数据看起来像这样(缩短了)

...
{
   title: 'Home',
   url: 'home',
   published: true,
   html: ''
 }
 ...

以下是一段简短的视频,完整地展示了我的问题:https://www.dropbox.com/s/nt2c5wxx9lbuy5v/Problem%201.mov?dl=0

更新

如果我将title as page.title for page in admin.content上方的uib-typeahead更改为page.title for page in admin.content。一切都像预期的那样工作 EXCEPT ng-model只代表标题而不是数组。我真的需要firebase uid和标题。

更新2

如果我再次更改uib-typeahead,再到page for page in admin.content我会在ng-model中得到我想要的内容,除非将typeahead选项列为[object object]。

1 个答案:

答案 0 :(得分:1)

根据要求,所有这些都是正确构建选择指令的问题,我们能够确定它应该是:

<input  type="text" 
        ng-model="newLink" 
        placeholder="Search for Pages" 
        uib-typeahead="page as page.title for page in admin.content | filter: {title: $viewValue}" 
        typeahead-show-hint="true" 
        class="form-control"/>