Javascript 角度传递动态范围到指令

Javascript 角度传递动态范围到指令,javascript,html,angularjs,Javascript,Html,Angularjs,我有一个从http调用中获取属性值的指令,如下所示: 控制器 app.controller("HomeController", function($scope){ $http.get("/api/source").then(function(res){ $scope.info = res.data }); }); HTML 我试图通过一个属性将info变量从控制器传递到指令中。它不起作用,因为变量值最初是从异步http调用创建的,所以在创建该指令时,没有值 有办法做到这一点吗?

我有一个从http调用中获取属性值的指令,如下所示:

控制器

app.controller("HomeController", function($scope){
  $http.get("/api/source").then(function(res){
    $scope.info = res.data
  });
});
HTML

我试图通过一个属性将info变量从控制器传递到指令中。它不起作用,因为变量值最初是从异步http调用创建的,所以在创建该指令时,没有值


有办法做到这一点吗?

您可以观察属性的值:

link: function(scope, element, attrs){
      attrs.$observe('info', function(val) {
        scope.info = val;
      })
}
此外,如果可以将指令范围更改为隔离,则可以通过绑定以下值来实现:

app.directive("ngMydirective", function(){
  return {
    restrict: "E",
    scope: {info: '='},
    templateUrl: "/partials/info.html", 
    link: function(scope, element, attrs){

    }
  }
});

<div ng-controller="MainController">
   <ng-mydirective info="info"></ng-mydirective>
</div>
app.directive(“ngMydirective”,function()){
返回{
限制:“E”,
作用域:{info:'='},
templateUrl:“/partials/info.html”,
链接:函数(范围、元素、属性){
}
}
});

检查如何将参数传递给指令:
link: function(scope, element, attrs){
      attrs.$observe('info', function(val) {
        scope.info = val;
      })
}
app.directive("ngMydirective", function(){
  return {
    restrict: "E",
    scope: {info: '='},
    templateUrl: "/partials/info.html", 
    link: function(scope, element, attrs){

    }
  }
});

<div ng-controller="MainController">
   <ng-mydirective info="info"></ng-mydirective>
</div>