Подтвердить что ты не робот

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=&quot;Id({ Id: #: Id # }) &quot;>#: Name #</a>'  },{'field': 'Alias' , 'title':'Alias' },{'field': 'Server' , 'title':'Server' },{'field': 'Faction' , 'title':'Faction' }]"></div>
4b9b3361

Ответ 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=&quot;Id({ Id: #: Id # }) &quot;>#: 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=&quot;Id({ Id: #: Id # }) &quot;>'

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'
}];