2013-05-02 52 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服务的帮助下“手动”处理双向数据绑定。