$范围。$表...使其在另一个范围返回一个函数?($scope.$watch … make it r

2019-10-19 18:53发布

我有2系列Highcharts数据的返回值的手表功能。 下面的例子说明如何做到这一点的控制器内工作:

$scope.$watch("trendCompany",function(){
   return $scope.chartConfig.series[0].data = 
            [-1.95,0.99,9.29,4.49,-1.50,-4.05,-7.05,10.13,-19.95,
            2.99,-14.55,-6.15,-20.25,-27.00,-26.10,-10.95,-10.95,5.30,
            6.06,11.12,10.13,11.96,22.13,6.74,4.67,1.43,0.27,4.20,-3.45,
            2.10,-1.65,1.92,1.85,0.00,1.97,-5.25,-3.30,1.67,3.87,6.27,1.89,
            2.27,0.59,-1.20,-5.85,-6.60,-2.25,-2.40,-2.85,-3.45,-0.15,2.63],
   $scope.chartConfig.series[1].data = 
            [1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2];
});

$scope.chartConfig = {
    options: {
        chart: {
            type: 'line'
        }
    },
    series: [{
        data: []
    },{
        data: []
    }],
    title: {
        text: 'Hello'
    },

    loading: false
}

我的问题是..如何将$ scope.chartConfig.series [I]。数据等于另一个函数,而不是这个静态数组? 我有一个返回像这样的数据结果的函数:

//Let a propertyExpr string define a traversal route into an object
$scope.dataResult = function(obj, propertyExpr) {
  return $parse(propertyExpr)(obj);
}

我第一次尝试是去回看功能,做...

$scope.chartConfig.series[i].data = dataResult(obj, property);

于是,我尝试...

$scope.chartConfig.series[i].data = function(){ return dataResult(obj,property); }

然而,这些都不是工作。 我怎样才能使该系列产品范围相同的东西,是由函数调用的价值?

Answer 1:

如果您对范围定义一个函数,你也必须把它叫做这样。

$scope.chartConfig.series[0].data = $scope.dataResult($scope.obj, $scope.property);


文章来源: $scope.$watch … make it return a function on another scope?