angular ui bootstrap typeahead - 添加类,当附加到body时

时间:2015-03-04 11:34:11

标签: javascript angularjs twitter-bootstrap object-reference angular-ui-typeahead

我在我的项目中使用了角度bootstrap typeahead。并且有几个使用它的例子。

http://angular-ui.github.io/bootstrap/#/typeahead

使用选项" typeahead-append-to-body"将它们中的一些直接附加到正文,因此对于一个实例,我需要自定义表示,即可以为该特定添加css类仅实例,即它创建的ul,下拉菜单。但我无法做到这一点,因为我无法找到任何办法。如果将它附加到输入元素的父母身上,那将很容易,但当附加到身体上时,似乎很难。

<input type="text" typeahead-append-to-body="true" typeahead="state as state.name for state in statesWithFlags | filter:{name:$viewValue}" typeahead-template-url="customTemplate.html">

我不想直接使用body&gt; .dropdown-menu,因为它也会影响其他实例。

2 个答案:

答案 0 :(得分:2)

我终于意识到,我可以简单地使用css属性选择器来定位我正在使用的html模板。

在输入typeahead中提到的attibute“typeahead-template-url ='mysearchdropdownpage.html'”的帮助下,我在css中写了以下内容。

HTML

<input type="search" typeahead="searchItem for searchItem in searchTypeAhead" typeahead-template-url = 'mysearchdropdownpage.html' />

CSS

ul.dropdown-menu[template-url='mysearchdropdownpage.html']

它的工作正常。

答案 1 :(得分:0)

基本上,您可以在input标记中添加一个类,以便更准确地引用下拉菜单......

<input class="u-targetting-typeahead" ...>

...然后,在css文件中......

.u-targetting-typeahead > .dropdown-menu

...然后引用只是该输入的下拉菜单。

下拉菜单是动态创建的,但输入是以HTML格式创建的,应该是用于创建参考点的元素。

<强>调整

看着......

typeahead-append-to-body (默认值:false):是否应将typeahead弹出窗口附加到$ body而不是父元素?

如果将其设置为false,则上述方法可行。我看不到任何其他合理的选择。