ui网格angularjs中单元格模板中的自定义指令

ui网格angularjs中单元格模板中的自定义指令,angularjs,angular-ui-grid,Angularjs,Angular Ui Grid,我定义了一个ui网格来显示数据,我定义了一个单元格模板来设置列样式。同时我还创建了一个指令,这里我只是将它添加到单元格模板中。但是链接函数的执行时间低于预期 以下是关于plunker的全部内容: var-app=angular.module(“app”,['ui.grid']); app.controller(“dataCtrl”,函数($scope、$element、$attrs){ var vm=这个; vm.gridOptions={ 数据:“ctrl.dataList”, columnD

我定义了一个ui网格来显示数据,我定义了一个单元格模板来设置列样式。同时我还创建了一个指令,这里我只是将它添加到单元格模板中。但是链接函数的执行时间低于预期

以下是关于plunker的全部内容:

var-app=angular.module(“app”,['ui.grid']);
app.controller(“dataCtrl”,函数($scope、$element、$attrs){
var vm=这个;
vm.gridOptions={
数据:“ctrl.dataList”,
columnDefs:[
{
姓名:“ID”,
displayName:“用户ID”,
宽度:200
},
{
名称:“名称”,显示名称:“用户名”,
cellTemplate:“{{row.entity[\'Name\']}”
}
],
enableRowSelection:true,
enableRowHeaderSelection:false,
多选:错,
名词选择:对,
};
vm.dataList=[];
vm.loadData=函数(){

对于(var i=1;i来说,很可能在ui网格中内置了一些优化,它们重用已经链接的行元素,而不是链接新的行元素

您可以通过
$watch
-ing范围中的更改来检查(并且,它应该可以得到您所需要的):

link: function ($scope, $element, $attrs) {
    //console.log($scope.row.entity.Name);
    $scope.$watch("row.entity.Name", function(v){
       console.log(v);
    });
}
这将在滚动时显示所有行


谢谢,这很有意义。实际上,我需要另一个属性来获取行实体对象。比如$scope.dataSource=$scope.$eval($attrs.source),然后我需要根据$scope.dataSource输出数据。但是结果也是begin。我已经更新了plunker.plnkr.co/edit/y36frn9gYMGJEy1hJU7f?p=preview@RonSmith,您是在问什么,还是只是在说什么-我不确定我很抱歉没有清楚地描述。为了重用自定义指令,我想根据另一个属性,然后使用$scope.$eval获得它。但是像这样,结果是作为开始,我必须更新plunker它做什么“结果是作为开始”?如果您想重用,我建议使用隔离作用域并直接传递输入链接函数的执行次数也少于总次数。我不知道为什么。基本上我准备使用隔离作用域,但另一个由三部分组成的库存在另一个错误。
link: function ($scope, $element, $attrs) {
    //console.log($scope.row.entity.Name);
    $scope.$watch("row.entity.Name", function(v){
       console.log(v);
    });
}