如何在AngularJS指令中同时使用$ http和$ timeout?

时间:2016-08-25 10:32:19

标签: angularjs http angularjs-directive timeout

这是我的代码的一部分

Object_Angular.directive("ntgChangeScanInnerHtmlWorkshop", ["$timeout", function($timeout){ ...

但我还需要访问$http,因为我想从我的API加载内容。我怎么能这样做?

我所拥有的是_id<p></p>的显示。假设我有<p>{{collections._id}}</p>。我希望<p></p>显示名称字段(collections.String_Name)而不是_id。所以我想在值加载后获取<p>{{collections._id}}</p>的内部HTML,然后通过String_Name从API中获取{ _id: innerHTMLValueOfP },然后在.success中重新设置内部值为result.String_Name。因此,我需要在我的指令中使用$http$timeout来实现这一目标。

1 个答案:

答案 0 :(得分:0)

在指令

中使用$ http的示例
app.directive('myTag', ['$http', function($http) {
   return {
      restrict: 'E',
      transclude: true,
      replace: true,     
      scope:{
      src:"="       
    },
   controller:function($scope){
    console.info("enter directive controller");
    $scope.gallery = [];

   console.log($scope.src);

    $http({method: 'GET', url:$scope.src}).then(function (result) {
                       console.log(result);                              
                    }, function (result) {
                        alert("Error: No data returned");
                    });
        } 
    }
 }]);
 or
 app.directive('example', function( $http){
   return {
      restrict:'E',
      link: function($scope,$element,$timeout){

            $http.post('/example', {
                data
            }).success(function(data){
            }).error(function(data){});
        }
   });