मेरे AngularJS टेम्पलेट में कुछ कस्टम HTML सिंटैक्स शामिल हैं:
<su-label tooltip="{{field.su_documentation}}">{{field.su_name}}</su-label>
मैंने इसे संसाधित करने के लिए एक निर्देश बनाया:
.directive('suLabel', function() {
return {
restrict: 'E',
replace: true,
transclude: true,
scope: {
title: '@tooltip'
},
template: '<label><a href="#" rel="tooltip" title="{{title}}" data-placement="right" ng-transclude></a></label>',
link: function(scope, element, attrs) {
if (attrs.tooltip) {
element.addClass('tooltip-title');
}
},
}
})
attrs.tooltip
अभिव्यक्ति के अपवाद पर, सब कुछ ठीक काम करता है, जो हमेशा लौटता है undefined
, भले ही tooltip
ऐसा करते समय Google क्रोम के जावास्क्रिप्ट कंसोल से विशेषता दिखाई देती है console.log(attrs)
।
कोई उपाय?
अद्यतन: एक समाधान Artem द्वारा की पेशकश की थी। इसमें यह शामिल है:
link: function(scope, element, attrs) {
attrs.$observe('tooltip', function(value) {
if (value) {
element.addClass('tooltip-title');
}
});
}
AngularJS + stackoverflow = आनंद