Tablo verisi olmadığında (örn. "Sonuç bulunamadı"), bazı metni <td>
numaralı belgede görüntülemek için kullanılan basit bir yönerge oluşturdum. masanın sırası. <td>
'da sadece statik bir metin almadan önce, ancak şimdi herhangi bir DOM'yi içine yerleştirebilmek istiyorum. Yönergeye ng-transclude
eklemeyi denedim, ancak şimdi öğeyi garip bir şekilde oluşturuyor.ng-transclude kullanma, tablodaki gibi iyi görünmüyor.
app.directive('skNoResult', ['$rootScope', function() {
return {
restrict: 'A',
replace: true,
transclude: true,
template: '<tr ng-if="!hasResult"><td class="left" colspan="{{ colSpan }}"><ng-transclude></ng-transclude></td></tr>',
link: function (scope, elem, attrs, ctrl) {
var span = angular.element(elem).parents('tbody').siblings('thead').find('tr').children().length;
scope.colSpan = span;
scope.$watch(attrs.skNoResult, function (list) {
if (list.length) {
scope.hasResult = true;
} else {
scope.hasResult = false;
}
});
}
};
}]);
Temelde sadece veri seti (dizi) izler ve herhangi bir veri ya da değil orada olup olmadığını görmek için uzunluğunu kontrol eder:
İşte benim yönergesi olduğunu. Varsa, bu satırı ngIf
ile görüntülüyoruz.
Benim html sadece sorun çapraz dahil metin sadece textNode olarak DOM içine yerleştirilir ediliyor ve oldukça bunun içinde daha <table>
yukarıda gösterildiğini olmasıdır bu
<tr sk-no-result="model.dataSet">Here is my text I want to transclude into my directive</tr>
benziyor. Bunun neden olduğu hakkında bir fikrin var mı?
Oh haklısınız ... Bu senaryoda tablonun içindeki eleman etiketini kullanmayı sevmiyor. Ben sadece nasıl bir kez –
öznitelik olarak kullanmak için gerekli olduğunu biliyorum: P Teşekkürler. – Kieran