3
我正在爲Angular JS使用Kendo UI包。我想用一個角模板,該行的細節,非常相似,都是在這裏完成:使用Angular模板進行Kendo UI Grid詳細模板
基本上我想獲取一些數據時的細節展開,並通過角模式向模板。這可能嗎?
我正在爲Angular JS使用Kendo UI包。我想用一個角模板,該行的細節,非常相似,都是在這裏完成:使用Angular模板進行Kendo UI Grid詳細模板
基本上我想獲取一些數據時的細節展開,並通過角模式向模板。這可能嗎?
我所做的(迄今爲止)與此相同的需求是使用Grid上已更改的事件來填充控制器中$ scope的'SelectedRow'對象。對於DetailTemplate,我有一個包含指令的div,該指令從$ templateCache或使用$ http加載模板並編譯並將其鏈接到$ scope。模板的問題之一是編譯並將它們鏈接到$範圍以及何時發生的時間。 (我的問題更糟糕,因爲我需要每行不同的詳細模板)
$scope.vm.options.productGridOptions = {
dataSource: new kendo.data.DataSource({
data: $scope.vm.solution.Products,
pageSize: 10
}),
change: $scope.vm.events.productSelected,
columns: $scope.vm.columns.productColumns,
detailTemplate: '<div data-template-detail type="#= EntityTemplateSK #"></div>',
filterable: false,
groupable: false,
pageable: true,
reorderable: true,
resizable: true,
selectable: 'single',
sortable: true
};
myApp.directive('templateDetail', ['$compile', '$http', '$templateCache',
function ($compile, $http, $templateCache) {
var detailTemplateNumbers = ['21', '22', '23', '26', '45', '69'];
var getTemplate = function (templateNumber) {
var baseUrl = '/App/Product/Views/',
templateName = 'productdetail.html',
templateUrl = baseUrl + templateName;
if (detailTemplateNumbers.filter(function (element) { return element === templateNumber; })[0]) {
templateName = 'productTemplate' + templateNumber + '.html';
templateUrl = baseUrl + templateName;
}
return $http.get(templateUrl, { cache: $templateCache });
};
var linker = function ($scope, element, attrs) {
var loader = getTemplate(attrs.type.toString());
if (loader) {
loader.success(function (html) {
element.html(html);
}).then(function() {
element.replaceWith($compile(element.html())($scope.$parent));
});
}
};
return {
restrict: 'A',
scope: {
type: '='
},
link: linker
};
}]);
無法讓此工作。細節指令根本不起作用,不要停在任何斷點處。你的改變功能如何?你如何獲得模板文件中的數據? – Kungen
加載動態模板的指令使用共享作用域,它是否從網格的父作用域獲取其數據。還有其他一些方法來處理這種情況,比如傳遞它所需的內容,我在其他指令中使用該模式,但是這需要從父範圍加載詳細視圖數據。我已經從我的代碼中刪除了這個變化事件。數據全部加載到網格綁定的數組上,所以細節視圖綁定到'dataItem.detailObject.fieldName'。 – Robharrisaz