Kendo Grid и ui-sref округляют число
Я пытаюсь сделать что-то относительно простое, но с проблемой, которая сводит меня с ума, я уверен, что мне не хватает чего-то простого.
У меня есть сайт AngularJS, который по большей части работает нормально, и в этом у меня есть Kendo Grid. Все, что я пытаюсь сделать, это иметь в первом столбце сетки ссылку на другую страницу, используя идентификатор, который находится в данных сетки.
Код, который я использую, приведен ниже, и это работает тем, что он создает ссылку в основном на основе того, что я прошу, но по какой-то странной причине идентификатор, который он использует как часть URL-адреса, округляется. Чтобы привести пример, фактический идентификатор, который мне нужно использовать, - 37509488620601829, это то, что возвращается моим API, и то, что показано, если я сделаю поле ID столбец в моей таблице, но по ссылке он округляется до 37509488620601830 ( обратите внимание на последние 2 цифры).
Любое понимание этого оценивается.
<div kendo-grid k-data-source="SearchResultsGrid" k-columns="[{'field': 'Name' , 'title':'Name', 'template': '<a ui-sref="Id({ Id: #: Id # }) ">#: Name #</a>' },{'field': 'Alias' , 'title':'Alias' },{'field': 'Server' , 'title':'Server' },{'field': 'Faction' , 'title':'Faction' }]"></div>
Ответы
Ответ 1
Сначала сохраните конфигурацию, подобную этой, из HTML. Это упрощает чтение и управление. Во-вторых, рекомендуемым способом привязки является использование методов angular ng-bind
или интерполяции ({{}}
), а не привязки шаблона по умолчанию для Kendo. В шаблоне, который вы подаете в сетку, вы имеете доступ к переменной dataItem
. Это ссылка на элемент строки.
HTML:
<div kendo-grid k-options="gridOptions"></div>
Контроллер:
scope.gridOptions = {
dataSource: SearchResultsGrid,
columns: [{
'field': 'Name',
'title': 'Name',
// 'template': '<a ui-sref="Id({ Id: #: Id # }) ">#: Name #</a>'
'template': '<a ui-sref="{{dataItem.Id}}">{{dataItem.Name}}</a>'
}, {
'field': 'Alias',
'title': 'Alias'
}, {
'field': 'Server',
'title': 'Server'
}, {
'field': 'Faction',
'title': 'Faction'
}]
};
Ответ 2
Попробуйте изменить эту часть своего кода
'<a ui-sref="Id({ Id: #: Id # }) ">'
To
'<a ui-sref="Id({ #: Id # })">'
Ответ 3
Не нужно упоминать, что в столбце def из html он сам хранит его в некоторой переменной области видимости, а затем присваивает ссылку на переменную области видимости
Переменная Kendo доступна в шаблоне, используя #= variableName #
, который вы делали #: variableName #
, что приводит к проблеме
Разметка
<div kendo-grid k-data-source="SearchResultsGrid" k-columns="columnDef"></div>
код
$scope.columnDef =[{
'field': 'Name',
'title': 'Name',
'template': '<a ui-sref="Id({ \'Id\': #= Id # })">#= Name #</a>'
}, {
'field': 'Alias',
'title': 'Alias'
}, {
'field': 'Server',
'title': 'Server'
}, {
'field': 'Faction',
'title': 'Faction'
}];