AngularJS值未传递给指令

时间:2014-04-16 15:38:09

标签: angularjs angularjs-directive

我正在使用具有自动完成功能的ngTagsInput。它似乎运作良好。我的问题是我想知道如何将查询从source="loadTags(query)"传递到指令中,但查询总是未定义的。查询应该只是在搜索框中键入的任何文本。

角:

app.directive('tag', function($q) {
  return {
    restrict: 'E',
    templateUrl: 'tag.html',
    link: function (scope) {
       scope.tags = [
          { text: 'Tag1' },
          { text: 'Tag2' },
          { text: 'Tag3' }
        ];

        scope.loadTags = function(query) {
          console.log(query)
          var deferred = $q.defer();
          deferred.resolve([{ text: 'Tag9' },{ text: 'Tag10' }]);
          return deferred.promise;
        };
    }
  }
});

HTML:

<tags-input ng-model="tags">
  <auto-complete source="loadTags(query)"></auto-complete>
</tags-input>
<p>Model: {{tags}}</p>

我的Plunker: http://plnkr.co/edit/3UuRok?p=info

1 个答案:

答案 0 :(得分:2)

这将为您解决:

更改

<auto-complete source="loadTags(query)"></auto-complete>

<auto-complete source="loadTags($query)"></auto-complete>

查看更新的Plunker