Я определяю ui-сетку для отображения данных, и я определяю шаблон ячейки, чтобы установить стиль столбца. В то же время я также создаю директиву, здесь я просто добавляю ее в шаблон ячейки. Но время выполнения функции связи меньше ожиданий.настраиваемая директива в шаблоне ячейки в ui-grid angularjs
Вот все это на plunker: LINK
var app = angular.module("app", ['ui.grid']);
app.controller("dataCtrl", function ($scope, $element, $attrs) {
var vm = this;
vm.gridOptions = {
data: "ctrl.dataList",
columnDefs: [
{
name: "ID",
displayName: "User ID",
width: 200
},
{
name: "Name", displayName: "User Name",
cellTemplate: "<div class=\"ui-grid-cell-contents\" pop-tip><span style=\"margin-left:5px\">{{row.entity[\"Name\"]}}</span></div>"
}
],
enableRowSelection: true,
enableRowHeaderSelection: false,
multiSelect: false,
noUnselect: true,
};
vm.dataList = [];
vm.loadData = function() {
for (var i = 1; i <= 100; i++) {
var user = {};
user.ID = i;
user.Name = 'user ' + i;
vm.dataList.push(user);
}
}
vm.loadData();
});
app.directive("popTip", function ($compile) {
return {
restrict: 'A',
scope: false,
link: function ($scope, $element, $attrs) {
console.log($scope.row.entity.Name);
}
};
})
Вы можете получить журнал браузера для просмотра времени выполнения соединения.
В результате, когда количество данных велико, что появляется вертикальная прокрутка, когда мы перетаскиваем полосу прокрутки, пользовательская директива больше не будет выполнять функцию связи.
Спасибо, это сделать sense.Actually мне нужен другой атрибут, чтобы получить объект строки объекта. как $ scope.dataSource = $ scope. $ eval ($ attrs.source), тогда мне нужны выходные данные в соответствии с $ scope.dataSource. Но результат также начинается. Я обновил плункер. plnkr.co/edit/y36frn9gYMGJEy1hJU7f?p=preview – RonSmith
@RonSmith, вы спрашиваете что-то или просто замечаете - я не был уверен –
Мне жаль, что я не описал ясно. Чтобы повторно использовать настраиваемую директиву, я хочу получить объект привязки в соответствии с другим атрибутом, а затем использовать $ scope. $ Eval, чтобы получить его. Но, как и в этом случае, результат начинается, я обновляю plunker http://plnkr.co/edit/y36frn9gYMGJEy1hJU7f?p=preview – RonSmith