angularjs – 使用ngTagsInput自动完成无法读取未定义的属性’th
发布时间:2020-12-17 08:21:59 所属栏目:安全 来源:网络整理
导读:我想弄清楚这个问题,但我没有运气. 这是我写的有效的掠夺者.请注意,当我使用$http.get访问tags.json时,代码可以正常工作. 角度指令代码: app.directive('tag',function($http) { return { restrict: 'E',templateUrl: 'tag.html',link: function (scope,el)
我想弄清楚这个问题,但我没有运气.
这是我写的有效的掠夺者.请注意,当我使用$http.get访问tags.json时,代码可以正常工作. 角度指令代码: app.directive('tag',function($http) { return { restrict: 'E',templateUrl: 'tag.html',link: function (scope,el) { scope.tags = [ { text: 'Tag1' },{ text: 'Tag2' },{ text: 'Tag3' } ]; var test = [{ "text": "Tag9" },{ "text": "Tag10" }]; scope.loadTags = function (query) { return $http.get('tags.json'); } } } }); ‘tag.html’中的HTML: <tags-input ng-model="tags"> <auto-complete source="loadTags($query)"></auto-complete> </tags-input> <p>Model: {{tags}}</p> 工作图: 很好,但是,我不想使用$http.get,因为我已经有一个对象,里面有我想要用于自动完成的标签.所以我尝试了这个 角度指令代码: app.directive('tag',{ "text": "Tag10" }]; scope.loadTags = test; } } }); 我的’tag.html’中的HTML: <tags-input ng-model="tags"> <auto-complete ng-model="loadTags"></auto-complete> </tags-input> <p>Model: {{tags}}</p> 但这根本不起作用.相反,我得到了 TypeError: Cannot read property 'then' of undefined at http://cdnjs.cloudflare.com/ajax/libs/ng-tags-input/2.0.0/ng-tags-input.min.js:1:5044 at http://code.angularjs.org/1.2.15/angular.js:13777:28 at completeOutstandingRequest (http://code.angularjs.org/1.2.15/angular.js:4236:10) at http://code.angularjs.org/1.2.15/angular.js:4537:7 angular.js:9563 链接到我的Plunk:
所以需要更改loadFunction以便它返回一个promise:
app.directive('tag',function($q) { ... link: function(scope) { $scope.loadTags = function() { var deferred = $q.defer(); deferred.resolve([{ text: 'Tag9' },{ text: 'Tag10' }]); return deferred.promise; } } } 除此之外,您需要修复标记,以便它使用source选项: <auto-complete source="loadTags()"></auto-complete> 这解决了我的问题 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |