Я написал пользовательскую директиву в AngularJS. И я должен использовать метод isSlotFilled $transclude. JavaScript директивы:
define(['../directives-module'], function (directivesModule, $scope, $transclude) {
directivesModule.directive('news', function() {
return {
restrict: 'E',
replace: true,
transclude: {
'heading': 'heading',
'content': '?content'
},
scope: {
'cmsContent': '@'
},
templateUrl: 'directives/news.html',
link: function(scope, element, attrs, ctrl, transclude){
console.log($transclude.isSlotFilled(content));
},
};
});
});
Я попытался вывести console.log(), чтобы проверить, работает ли метод. Приведенный выше console.log() не работает, говоря:
TypeError: невозможно прочитать свойство isSlotFilled неопределенного
На самом деле, я должен использовать этот метод в HTML-файле директивы. Файл news.html содержит:
<div class="row">
<div class="largeText shadow1" ng-transclude="heading"></div>
<div class="mediumText shadow2" ng-transclude="content"
ng-class="{'hide' : $transclude.isSlotFilled(content)}">
</div>
</div>
Как вы видите в ng-классе, он скроет div, если слот содержимого не заполнен. Однако условие внутри ng-класса всегда возвращает false. Я уверен, что что-то упускаю при введении $transclude. Что я должен сделать, чтобы правильно использовать этот метод из news.html?