2013-05-02 48 views

回答

2

這不是你想一個簡單的問題恐怕在這裏解決。基本上你碰到了範圍問題。 typeahead指令在它所在的DOM元素的範圍內評估它的表達式(這裏是city for city in cities($viewValue))。你編寫你的包裝指令的方式使得它的表達式在指令的作用域中被評估,該作用域被隔離並且不會「看見」你的控制器作用域。

的是它周圍的方式號碼,但可能是最簡單的一種是你的$編譯-ED元素那是你的指令範圍的$父範圍鏈接:

var linkedInput = $compile(inputHtml)(scope.$parent); 

這裏是一個工作普拉克: http://plnkr.co/edit/fLFwIKNqIRbnesMjZBGj?p=preview

另一種替代方法是鬆開隔離的範圍並在$parse服務的幫助下「手動」處理雙向數據綁定。