Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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获得服务承诺的结果以绑定到指令值_Angularjs_Angularjs Directive_Angularjs Service - Fatal编程技术网

AngularJS获得服务承诺的结果以绑定到指令值

AngularJS获得服务承诺的结果以绑定到指令值,angularjs,angularjs-directive,angularjs-service,Angularjs,Angularjs Directive,Angularjs Service,在我看来,我有以下指示: <line-chart data="buildData(id)" options="buildOptions(id)" /> 在我的指示中,我有: function lineChartLink($http){ return function(scope, element, attrs) { chart.bindData(scope.data); } } 现在,我的问题是,如何获取折线图指令及其所需的数据?您需要在此处进行选择 如果要将数据

在我看来,我有以下指示:

<line-chart data="buildData(id)" options="buildOptions(id)" />
在我的指示中,我有:

function lineChartLink($http){
  return function(scope, element, attrs) {
    chart.bindData(scope.data);
  }
}

现在,我的问题是,如何获取折线图指令及其所需的数据?

您需要在此处进行选择

如果要将数据传递给指令,则在数据可用之前不应调用指令。如果,使用一个简单的
ng就可以很容易地做到这一点:

$scope.buildData = function(id) {
    dataService.getDataById(id).then(function(response) {
        $scope.data = response.data
    });
};
$scope.buildData(someId);
并且认为:

<line-chart ng-if="data" data="data" ... />
<line-chart data="buildData(id)" ... >
并且认为:

<line-chart ng-if="data" data="data" ... />
<line-chart data="buildData(id)" ... >


或者,第三种解决方案是,您可以将id传递给指令而不是数据,并让指令自己获取数据。

您需要在此处进行选择

如果要将数据传递给指令,则在数据可用之前不应调用指令。如果
,使用一个简单的
ng就可以很容易地做到这一点:

$scope.buildData = function(id) {
    dataService.getDataById(id).then(function(response) {
        $scope.data = response.data
    });
};
$scope.buildData(someId);
并且认为:

<line-chart ng-if="data" data="data" ... />
<line-chart data="buildData(id)" ... >
并且认为:

<line-chart ng-if="data" data="data" ... />
<line-chart data="buildData(id)" ... >


或者,第三种解决方案是,您可以将id传递给指令而不是数据,并让指令自己获取数据。

折线图可能具有ngModel属性?您应该在那里定义它,然后将收到的数据分配给特定的$scope变量。您能用一些伪代码解释一下吗?我在理论上遵循,但在指令和范围继承方面没有足够的经验来做到这一点。你的问题很不清楚。您正在向我们展示getData和onGetData的代码,这两个代码完全不相关,因为您调用buildData和buildOptions将参数传递给指令。对不起,我刚刚意识到输入错误并修复了我的问题。控制器应该是$scope.BuildDataLine图表可能有ngModel属性?您应该在那里定义它,然后将收到的数据分配给特定的$scope变量。您能用一些伪代码解释一下吗?我在理论上遵循,但在指令和范围继承方面没有足够的经验来做到这一点。你的问题很不清楚。您正在向我们展示getData和onGetData的代码,这两个代码完全不相关,因为您调用buildData和buildOptions将参数传递给指令。对不起,我刚刚意识到输入错误并修复了我的问题。控制器应该是$scope.buildData