2013-04-10 77 views
2

我有一個指令,動態地添加一個輸入以響應點擊容器。我希望能夠將指針元素應用於動態輸入。我已經設置了這個龐然大物來演示。鍵入動態添加的指令

http://plnkr.co/edit/199KeGRAd32ZeOIjTKe6?p=preview

在我的應用程序中,預輸入源是一個HTTP調用。我在調用http調用的函數中放置了一些控制檯日誌,並且確實看到了返回的結果,因此我知道typeahead正在觸發,但正如在plunk中可以看到的那樣,typeahead下拉菜單從不出現。我究竟做錯了什麼?

交叉posted上angularui的谷歌組

+0

我想你需要修復您plnkr ...'未捕獲的錯誤:沒有模塊:ui.bootstrap' – Langdon 2013-04-10 20:47:51

+0

啊... plunker下降一些文件...生病添加這些返回 – 2013-04-10 21:00:38

+0

@Langdon我已更新plunk,謝謝 – 2013-04-10 21:07:52

回答

2

我看看你的代碼,但我不能使它工作。相反,也許你可以使用AngularUI的類似功能。他們有基於Select2 jQuery插件的指令。

看一看:http://angular-ui.github.io/#/directives-select2

而且爲了使用多值讀取選擇二文件(有一個很好的演示): http://ivaynberg.github.io/select2/#multi

我希望它可以幫助你。

+0

我們在其他地方使用select2,我將不得不看看它是否可以處理我們的所有需求(包括無需編輯js的樣式)。 – 2013-04-11 22:29:02

1

是否有某些原因需要$compile的複雜性?該預輸入指令似乎並沒有讓你通過它通過很容易,但如果你提供使用更通用的數據源,你可以做這樣的:

http://plnkr.co/edit/SFhS7kbmI1c6pEyRS18v?p=preview

HTML:

<test test-model="test" test-typeahead-data-source="getData()"></test> 

的JavaScript:

app.directive("test", function($rootScope, $compile) { 
    return { 
    restrict: 'E', 
    scope: { 
     testModel: '=', 
     testTypeaheadDataSource: '=' 
    }, 
    template: '<input type="text" ng-model="testModel" typeahead="test as test.name for test in testTypeaheadDataSource" />' 
    } 
}); 
+0

我如何將keyup事件處理程序附加到那個? – 2013-04-11 22:26:33