Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
绕过/延迟AngularJS$http.get承诺_Angularjs_Promise - Fatal编程技术网

绕过/延迟AngularJS$http.get承诺

绕过/延迟AngularJS$http.get承诺,angularjs,promise,Angularjs,Promise,我在AngularJS项目中使用ngTagsInput来处理我的标记。它有一个自动完成指令。要处理进入指令的数据,它假定您将执行以下操作: $scope.loadTags = function(query) { return $http.get('tags.json'); }; 这是一个承诺。下面是一个棘手的部分,我想做与此相同的事情,但我的$scope中已经有一个对象,它包含了我想要用于自动完成的所有标记。我不能简单地执行$scope.loadTags,因为这会返回一个错误 无法

我在AngularJS项目中使用ngTagsInput来处理我的标记。它有一个自动完成指令。要处理进入指令的数据,它假定您将执行以下操作:

$scope.loadTags = function(query) {
    return $http.get('tags.json');
  };
这是一个承诺。下面是一个棘手的部分,我想做与此相同的事情,但我的$scope中已经有一个对象,它包含了我想要用于自动完成的所有标记。我不能简单地执行$scope.loadTags,因为这会返回一个错误

无法读取未定义的属性“then”

我如何绕过这个承诺或推迟它

这是我的宝贝

指令: app.directive('tag',function($http){ 返回{ 限制:'E', templateUrl:'tag.html', 链接:功能(范围,el){ scope.tags=[ {text:'Tag1'}, {text:'Tag2'}, {text:'Tag3'} ])

        var test = [{ text: 'Tag9' },{ text: 'Tag10' }];

        scope.loadTags = test;
    }
  }
});


模型:{{tags}}

使用
$q.when()
从数组创建已解析的承诺

scope.loadTags = function () {
    var test = [{ text: 'Tag9' },{ text: 'Tag10' }];
    return $q.when(test); 
};
tag.html
模板中还有一个添加错误。
ng model=“loadTags”
应该是
source=“loadTags(query)”

<tags-input ng-model="tags">
    <auto-complete source="loadTags(query)"></auto-complete>
</tags-input>

<tags-input ng-model="tags">
    <auto-complete source="loadTags(query)"></auto-complete>
</tags-input>