Ich habe mehrere Controller für mehrere Routen:wie eine Funktion in mehreren Controllern wiederzuverwenden
app.controller('FirstController', function ($scope) {
$scope.func = function() {
console.log('route 1');
}
}
app.controller('SecondController', function ($scope) {
$scope.func = function() {
console.log('route 2');
}
}
...
und eine Richtlinie, die die $scope.func
verwendet, auf diese Weise:
app.directive('thedirective', function() {
return {
link: function (scope, $element, attrs) {
$scope.func(attrs.thedirective);
}
}
});
$scope.func
unterschiedlich ist in jedem Controller . Ich erwarte, dass $ scope.func "route 1" protokolliert, wenn wir in route1 sind und FirstController der aktuelle Controller ist und "route 2" in Route 2 protokolliert, aber nur "router 1" ist, was ich in der Konsole bekomme. Kannst du mir bitte sagen, warum die Änderung der Route den Geltungsbereich der Richtlinie nicht ändert?
Vielleicht kann meine Lösung Ihnen helfen? http://stackoverflow.com/questions/26921071/initialize-scope-variables-for-multiple-controllers-angularjs/26921599#26921599 – arman1991