如何将数据从指令发送到控制器? 我试过了:http://jsfiddle.net/1xfvuotL/2/ 但是,我有这个错误:
未捕获的TypeError:无法读取属性' methodToCall'未定义的 在formateData
我的指示:
search.directive('donutChartScope', function () {
return {
restrict: 'E',
template: '<div style="position:absolute"></div>',
replace: true,
scope: {
title: '@',
width: '@',
height: '@',
data: '=',
objx: '='
},
link: function (scope, element) {
formateData = function (data, scope) {
var categorie = data.momsCategorie;
if (categorie == 'Hors Production') {
var obj = 'HorsProd';
}
else if (categorie == 'Production') {
var obj = 'Prod';
}
else if (categorie == 'Enseigne') {
var obj = 'Enseigne';
}
var array = [];
var i = 0;
$.each(scope[obj].Ok, function(idx, elm) {
array.push([scope[obj].Ok[i].Hostname, scope[obj].Ok[i].NMON, scope[obj].Ok[i].ATR]);
i++;
});
scope.objx.methodToCall(array);
console.log(array);
}
[...]
scope.chart = Highcharts.chart(element[0],
{
chart: {
type: 'pie'
},
title: {
text: '',
style: {
display: 'none'
}
},
subtitle: {
text: '',
style: {
display: 'none'
}
},
plotOptions: {
pie: {
shadow: false,
center: ['50%', '50%'],
point: {
events: {
click: function (event) {
formateData(this, scope.data[0].drilldown.array);
}
}
}
}
},
我的控制器:
search.controller('NmonCustomController', function (config, $http, $compile, $q, $scope, query, $mdDialog, $timeout, $rootScope) {
$scope.objx = {};
$scope.objx.methodToCall = function(i) {
console.log(i);
}
提前感谢您帮助我并抱歉我的英语
答案 0 :(得分:0)
scope.objx.methodToCall(array);
范围变量指向传递给formateData
函数的参数,它不引用链接函数中的范围变量。
确保在formateData
函数调用中传递正确的范围变量,或将变量名称更改为其他变量名称。