我试图让 Twitter Bootstrap 的 Typeahead 功能在 AngularJS ng-view 中工作,但 Javascript 调用没有注册服务。
我知道 Bootstrap 的 AngularJS 实现,但我现在必须使用“原始”Bootstrap。
- AngularUI Bootstrap:不会触发“更新程序”事件,并
$watch
会导致奇怪的副作用。ng-change
在预先输入的选择上键入 & 时触发。我只想要一个预先输入的选择。$watch
没有在预先输入的选择上触发,并且尝试找到正确的插入位置$digest
失败。
- AngularStrap:触发单个
typeahead-updated
事件,但在多个 typeaheads(我有)的情况下不区分它来自哪里。
如果我设置了“仅 HTML”预输入,它可以工作:
<input type="text" id="textbox_EMPID" class="span6" placeholder="8675309" data-provide="typeahead" data-items="4" data-source='["Alabama","Alaska","Arizona"'>
但是,如果我将其设置为通过 Javascript 进行初始化,则 Typeahead 将不再出现。
HTML:
<input type="text" id="textbox_EMPID" class="span6" placeholder="8675309" data-provide="typeahead">
Javascript:
$('#textbox_EMPID').typeahead({
minLength: 3,
source: function (query, process)
{
console.log("checking");
// snipped $.get() call
},
});
如果我在字段上调用其他 jQuery 操作,它确实有效。例如,以下将在放置在同<script>
一块中时隐藏该字段:
$('textbox_EMPID').hide();
调用下面确实成功了,说明该typeahead
函数可用:
if(jQuery().typeahead) { alert("yes"); }
typeahead
但是永远不会调用“源”部分。我省略了$.get()
请求的内容,因为它console.log()
也从未出现。
我将这段代码从我编写的非 AngularJS 页面移过来,它工作得很好。我不清楚我缺少什么会导致它在ng-view
.