指令中的控制器和链接函数没有相同的范围

时间:2014-02-06 10:22:07

标签: javascript angularjs angularjs-directive angularjs-scope angularjs-ng-repeat

我的 angular.js指令存在问题。

它应该是一种自动完成,在指令的控制器属性中我正在加载一个值数组,并在链接函数编译模板中显示结果。

但是当我在链接中更新scope时,它没有反映在控制器和模板上,请查看此处的示例 - http://plnkr.co/edit/Lz3QGwklghPo3as2QTqU

apply范围是否应该更改或类似?

2 个答案:

答案 0 :(得分:1)

我将您的$body.bind('click',...)方法更新为

$body.bind('change', function (e) {
    scope.results = [];
});

它似乎有效(我的意思是在0.5秒后我输入一个字母,重新显示名称列表)。

答案 1 :(得分:1)

您的代码有两个问题

  • 将点击事件附加到文档而不是正文
  • 在bind
  • 中使用$ apply()

下面的代码将解决您的问题

$document.bind('click', function (e) {
                    scope.results = [];
                    scope.$apply();
                });