Я работаю с AngularJS в течение нескольких месяцев. Сегодня мне нужно создать директиву, которая поможет мне добавить заголовок исправления в таблицу. Все директивы, которые я нашел, были недостаточно хороши из-за того, как они обрабатывают размер столбцов (я все еще открыт для предложений).AngularJS: Как получить доступ к сгенерированным данным из директивы?
Мы используем «старую» функцию, созданную с помощью jQuery, и я пытаюсь преобразовать ее в директиву. Цель состоит в том, чтобы клонировать таблицу (или заголовок таблицы) и работать с функциями hide/show и ее позицией, чтобы получить хороший результат.
Моей проблема: заголовок моей таблицы динамичен с генерируемыми столбцами:
<table>
<thead>
<tr>
<th></th> // true th elements, used for styling my table
<th></th>
<th class='text-center' ng-repeat="thing in things">
{{thing.label}}
</th>
</tr>
</thead>
<tbody>
// my tbody
</tbody>
</table>
Я пытаюсь получить <th>
элемент в моих директивах с чем-то вроде этого:
angular.forEach(elem.querySelectorAll('tr:first-child th'), function (thElem, i) {
console.log(thElem)
// do stuff here
}
});
Но Я просто получаю два первых <th>
, которые являются «истинными» элементами в моем коде. Все остальные, генерируемые ng-repeat, игнорируются. Или не указывается в моей директиве.
Я просматриваю атрибут transclude, но я не мог найти ничего, что сработает. Можете ли вы мне помочь с некоторой точностью?
EDIT: Вот начало моей директивы:
myApp.directive('fixMe', function ($window) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
angular.forEach(element.querySelectorAll('th'), function (thElem, i) {
console.log(thElem);
var columnWidth = thElem.offsetWidth;
thElem.style.width = columnWidth + 'px';
});
}
};
})
Я не уверен, если я понимаю - вы хотите взять все внутри '' и поместить его внутрь директивы? Не можете ли вы просто ввести код в шаблон директивы? – Ozrix
+0
A
0
+0
+0
до конца массива. поэтому, если у вас есть 3 элемента в массиве, это создаст тэги 3 с вещью. Вы можете сделать то же самое для тела, так что у вас тоже есть динамические строки. –
fayzaan
0
Смежные вопросы
-
1. Доступ к данным службы из директивы
-
2. Доступ к данным JSON внутри NSDictionary, сгенерированным из NSJSONSerialization
-
3. AngularJS - доступ к области директивы
-
4. AngularJS: доступ к службе ngTouch из директивы?
-
5. AngularJS: Как получить доступ к сфере из директивы
-
6. Как получить доступ к данным из параметров URL в AngularJS
-
7. Как получить доступ к данным из AngularJS Scope
-
8. JSON Доступ к данным из angularjs
-
9. Доступ к регулятору директивы AngularJs
-
10. Получить доступ к контроллеру из дочерней директивы в AngularJS
-
11. Невозможно получить доступ к атрибуту из директивы Angularjs
-
12. Как получить доступ к данным из потока?
-
13. Как получить доступ к данным из GMemoryOutputStream
-
14. , как получить доступ к данным из NSMutableIndexSet
-
15. Как получить доступ к элементу DOM директивы из другой директивы?
-
16. Как получить доступ к родительской области директивы
-
17. AngularJS: Как получить доступ к атрибутам, определенным внутри директивы снаружи
-
18. Как получить доступ к данным, представленным формой в Angularjs?
-
19. AngularJS - Доступ к контроллеру сторонней директивы
-
20. AngularJS: Как получить доступ к динамически генерируемый элемент внутри директивы
-
21. Как получить доступ к данным в обещании angularjs
-
22. Как получить доступ к данным в обещании angularjs?
-
23. Как получить доступ к сохраненным данным в $ localStorage в angularjs
-
24. Доступ к данным, связываю = «значение: вар» из директивы
-
25. Firebase AngularJS полный доступ к данным
-
26. Доступ сфера из родительской директивы angularjs
-
27. Возврат REF CURSOR к сгенерированным процедурам данным
-
28. Доступ к конкретным данным json в AngularJS
-
29. Доступ к данным из фрейма
-
30. Доступ к данным в объектах angularJS
Последний вопрос
-
1. как размещать данные в MySQL с помощью андроида залп
-
2. Использование и содержание печати Сета <Set<T>> в Java
-
3. Создание двух строк для одной и той же ссылки, в зависимости от значения столбца
-
4. Facebook API: как искать группы и страницы с одного запроса
-
5. Установка adsize программно не работает NativeAdExpress
-
6. viewDidLoad вызывался каждый ребенок добавляется firbase БД При
-
1. Доступ к данным службы из директивы
-
2. Доступ к данным JSON внутри NSDictionary, сгенерированным из NSJSONSerialization
-
3. AngularJS - доступ к области директивы
-
4. AngularJS: доступ к службе ngTouch из директивы?
-
5. AngularJS: Как получить доступ к сфере из директивы
-
6. Как получить доступ к данным из параметров URL в AngularJS
-
7. Как получить доступ к данным из AngularJS Scope
-
8. JSON Доступ к данным из angularjs
-
9. Доступ к регулятору директивы AngularJs
-
10. Получить доступ к контроллеру из дочерней директивы в AngularJS
Моя цель - иметь директиву, которая будет работать с любой таблицей (независимо от количества строк, столбцов и т. Д.). Могу ли я сделать это с помощью шаблона? – Thib
ответ
с момента, используя нг-повтора, вы можете добавить уникальный идентификатор, а затем использовать ванильный JS, чтобы получить элемент.
зависит от того, что вы хотите сделать, если вы хотите обрабатывать изменения при нажатии, вы также можете использовать ng-click на th элементах, и таким образом вы можете получить элемент, используя функцию as: ng-click = " йоЗотеЬЫпд ($ событие)».
источник
2016-04-27 23:06:34 fayzaan
Как я уже говорил в предыдущем комментарии, моя цель - иметь директиву, которая будет работать для любой таблицы. Я не могу полагаться на сферу, не так ли? – Thib
с использованием ng-repeat делает его динамическим, так что он работает с любой таблицей. ng-repeat просто дублирует элемент
Я собираюсь принять диких угадать здесь, так как я до сих пор не уверен, если это то, что вы хотите, но для того, чтобы получить любой набор элементов, вы могли бы использовать: включение
Demo (проверьте журнал консоли, динамически включены
<th>
элементы находятся вtr.scope.cells
объекта)источник
2016-04-28 09:18:31 Ozrix
Смежные вопросы