Попробуйте динамически изменить список столбцов с помощью запроса ...
Когда я создаю TreeList, я вызываю столбцы:
$("#treelist").kendoTreeList({
columns: AnalyseCenterSKUService.getKPIColumnList($scope)
Если я возвращаю простой массив споля, это работает ..
Если я вызываю $http.get
(внутри моей функции getKPIColumnList (..)), которая добавляет некоторые столбцы к существующему массиву столбцов, TreeList создается неправильно.
Любое предложение будет по достоинству оценено! :)
EDIT 22-10-2019 09: 00
Treelist init
$("#treelist").kendoTreeList({
columns: AnalyseCenterSKUService.getKPIColumnList($scope),
scrollable: true,
columnMenu : {
columns : true
},
height: "100%",
dataBound: function (e) {
ExpandAll();
},
dataSource: {
schema: {
model: {
id: "id",
parentId: "parentId",
fields: {
id: { type: "number" },
parentId: { type: "number", nullable: true },
fields: {
id: { type: "number" },
parentId: { type: "number", nullable: false }
}
}
}
},
transport: {
read: {
url: "/api/AnalyseCenter/GetWorkOrderTree/0",
dataType: "json"
}
}
}
getKPIColumnList возвращает статический массив + некоторое нажатие сдинамические столбцы (из БД)
angular.module('AnalyseCenterDirectives')
.service ('AnalyseCenterSKUService', function ($http) {
var toReturn = [ {field: "Name", title: "Hiérachie SKU", width: "30%" }, ..., ..., .... ];
Я пытаюсь в этой функции выдвинуть результат БД
return $http.get("/api/AnalyseCenter/GetWorkOrderHistorianAdditonalColumns?equipmentName=" + equipmentName)
.then(function (result) {
var data = result.data;
if (data && data !== 'undefined') {
var fromDB = data;
angular.forEach(fromDB, function (tag) {
var tagName = tag.replace(".","_");
toReturn.push({
field: tagName, title: tag, width: '10%',
attributes: { style: "text-align:right;"} })
})
Хранимая процедура GetWorkOrderHistorianAdditonalColumns
возвращает список строк (будущий столбец)