Die Direktive hat einen isolierenden Gültigkeitsbereich, und die Gültigkeitsbereichsattribute werden mit "@" übergeben.Isolieren Sie die mit @ definierten Bereichsattribute undefiniert/verschwinden in der Verknüpfungsfunktion der Anweisung
Dies ist, wie die Richtlinie genannt wird:
<div ng-init="classForIcon = 'vladClass'"></div>
<div ng-init="textForIcon = 'Icon\'s text'"></div>
<div ng-init="routeForIcon = 'www.google.com'"></div>
<div ng-init="tooltipForIcon = 'my tooltip'"></div>
<div ng-init="imageForIcon = 'images/HOME_ICON1.png'"></div>
<rl-icon-widget icon-class="{{classForIcon}}" icon-text = "{{textForIcon}}" icon-tooltip="{{tooltipForIcon}}" icon-route="{{routeForIcon}}" icon-image="{{imageForIcon}}"></rl-icon-widget>
Dies ist, wie die Richtlinie definiert:
'use strict';
fcPortalApp.directive('rlIconWidget', ['localizationAssistant', function(localizationAssistant) {
var obj = {
restrict: 'E',
templateUrl: 'scripts/directives/rliconwidget/rliconwidget.html',
//require: 'ngModel',
scope: {
//ngModel: '@',
iconClass: "@",
iconRoute: "@",
iconText: "@",
iconTooltip: "@",
iconImage: "@"
},
link: function(scope, element, attrs) {
console.log(scope);
console.log(scope.iconImage);
console.log(scope.iconTooltip);
console.log(scope.iconRoute);
}
};
console.log(obj);
return obj;
}]);
Wenn ich den Umfang Objekt (klicken Sie auf den Ausgang von console.log (scope_ in Firebug) inspizieren, es sieht aus wie es ist iconImage, iconTooltip und iconRoute Eigenschaften richtig eingestellt.
Doch console.log (scope.iconImage), console.log (scope.iconTooltip) und console.log (scope.iconRoute) print "undefiniert"
Vielen Dank, tolle Erklärung! – user2140869
Ich hatte das gleiche Problem und Ihre Antwort war immens hilfreich - danke! – akoprowski