ディレクティブは、スコープを隔離持っている、とスコープの属性は、「@」を渡されています。アイソスコープ属性は、/ディレクティブのリンク機能に未定義消えている
これはディレクティブが呼び出された方法です。
<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>
これはディレクティブが定義されている方法です。
は「厳格な使用」;
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;
}]);
私はスコープオブジェクトを検査(それが正しく設定さiconImage、iconTooltipとiconRoute性質を持っているように見える、にconsole.logの出力放火犯で(scope_)をクリックしてください。
しかしにconsole.log (scope.iconImage)、にconsole.log(scope.iconTooltip)と
ありがとう、すばらしい説明! – user2140869
私は同じ問題を抱えていて、あなたの答えは非常に有益でした - ありがとう! – akoprowski