Neyi başarmak istediğim, (2 parametreden oluşan) bir fonksiyonu iletmek ve denetleyicide direktifte tanımlamaktır. Direktif paramları ile direktif.Çağrı Denetleyici Direktifi (direktiften geçilen param ile)
.on('click', function(d, i){
// here I want to call the function from the controller,
ctrlCB(d, i);
})
Benim denetleyicisi görünüyor böyle biraz:
(function() {
'use strict';
angular.module('d3')
.directive('verticalBarChart', verticalBarChart);
verticalBarChart.$inject = ['d3Service', '$window', '$parse'];
function verticalBarChart(d3Service, $window, $parse) {
return {
restrict: 'EA',
scope: {
data: '=',
click: '=click'
},
link: function (scope, element, attrs) {
d3Service.d3()
.then(function (d3) {
// some more d3.js stuff
svg.selectAll('rect')
.data(data).enter()
.append('rect')
.attr('width', barWidth)
.on('click', function (d, i) {
scope.click(d, i); // THIS IS THE ONE I'M INTERESTED IN !
// on click it calls the function, but the params don't get passed in
})
}
});
}
};
}
Yönergesi:
<div vertical-bar-chart bar-padding="2" data="barData" click="clickCallback"></div>
ve denetleyici ben örneğin bir
$scope.clickCallback = function(d, i){
$location.url('/item/'+i)
}
Geçerli çözümünüzü plunkr veya jsfiddle üzerinde oluşturabilir misiniz? –
Neler çalışmıyor? – rob