我有一个包含指令的ui网格,该指令有一个独立的范围,并根据某些逻辑更改了它的模板。
问题是,在排序时(以及PAGING时),指令的“逻辑”似乎没有被正确地“重新评估”。
在具体示例中,最右边的列应该只看到一些“11”,而如果你尝试按id(或其他字段)排序,你会看到一些spurios'0'出现。
这是ui:
<div ng-app="myapp">
<div ng-controller="myctrl">
<div ui-grid="gridOptions" ng-style="gridStyle"></div>
</div>
</div>
这是js:
var myapp = angular.module('myapp', ["ngRoute", "ui.grid"])
.controller('myctrl', function($scope) {
$scope.gridOptions = {
data: [{
id: 1,
name: "Max",
other: "pippo",
number: 1
}, {
id: 2,
name: "Adam",
other: "pluto",
number: 0
}, {
id: 3,
name: "Betty",
other: "paperino",
number: 0
}, {
id: 4,
name: "Sara",
other: "fava",
number: 1
}, {
id: 5,
name: "Favonio",
other: "favona",
number: 1
}],
columnDefs: [{
field: "id",
displayName: "ID"
}, {
field: "name",
displayName: "Name"
}, {
field: "other",
displayName: "Other"
}, {
field: "number",
cellTemplate: '<div class="ui-grid-cell-contents"><mydir data="row.entity"></mydir></div>'
}]
};
}).directive("mydir", function() {
return {
restrict: 'E',
scope: {
data: "=",
},
template: '<div><label ng-if="data.number==1">{{set}}</label></div>',
link: function(scope, iElement, iAttrs) {
scope.set = -1;
if (scope.data.number == 0) {
scope.set = 00;
} else {
scope.set = 11;
}
}
}
});
这是一个小提琴:
https://jsfiddle.net/27yrut4n/
任何提示?
答案 0 :(得分:0)
最后这是一个已知的错误:
https://github.com/angular-ui/ui-grid/issues/4869
我解决了使用手表,就像在这里说的那样:
Directive rendered via UI-Grid cellTemplate rendering incorrectly