Chỉ thị đã tách biệt phạm vi và các thuộc tính phạm vi đang được chuyển với "@".Các thuộc tính phạm vi cô lập được xác định bằng @ không được xác định/biến mất trong chức năng liên kết của chỉ thị
Đây là cách chỉ thị được gọi là:
<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>
Đây là cách chỉ thị được định nghĩa:
'sử dụng nghiêm ngặt';
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;
}]);
Khi tôi kiểm tra các đối tượng phạm vi (click vào đầu ra của console.log (scope_ trong firebug), có vẻ như nó đã iconImage, iconTooltip và iconRoute thuộc tính thiết lập một cách chính xác.
Tuy console.log (scope.iconImage), console.log (scope.iconTooltip) và console.log (scope.iconRoute) print "không xác định"
Cảm ơn bạn rất nhiều, giải thích tuyệt vời! – user2140869
Tôi đã gặp vấn đề tương tự và câu trả lời của bạn vô cùng hữu ích - cảm ơn bạn! – akoprowski