Ich versuche, zwischen zwei Direktiven zu kommunizieren. Ich habe den Service ausprobiert, es hat nicht funktioniert. Vielleicht mache ich etwas falsch.Kommunizieren zwischen zwei Direktiven Angularjs?
<list-data testing="trial" template-url="grid.html" link-passed="data.json"></list-data>
Meine Richtlinie und Service:
app.directive('listData', function($http, serVice){
return {
restrict: 'E',
scope: {
testing: '@',
linkPassed: '@'
},
templateUrl: function(elem,attrs) {
return attrs.templateUrl || 'some/path/default.html'
},
link: function($scope){
var url = 'js/' + $scope.linkPassed;
$http.get(url).then(success, error);
function success(data){
$scope.iconUrl = data.data;
}
function error(response){
console.log(response)
}
$scope.tryingToClick = function(icon){
serVice=icon.name;
console.log(serVice)
}
}
};
});
app.directive('render', function(serVice){
return {
restrict: 'E',
template: '{{rendering}}',
link: function($scope){
$scope.rendering = serVice.name;
console.log(serVice)
}
};
});
app.factory('serVice', function(){
return{items:{}};
})
grid.html ist nur ein einfaches Raster-Layout, wo ich die Daten in Raster zu zeigen versuchen.
Ich muss die Daten übergeben, wenn ich auf die Funktion tryingToClick klicke und das Symbol an die Render-Anweisung übergibt. Ich kann weder $ rootscope noch neue Controller verwenden. Ich werde die Logik hier in einer ziemlich großen Unternehmens-App verwenden, nur dass ich eine sehr einfache Version davon auf meinem localhost gemacht habe, nur um die Logik richtig zu machen.