问题 Kendo Grid和ui-sref四舍五入


我正在尝试做一些相对简单的事情,但是有一个让我发疯的问题,我确信我错过了一些简单的事情。

我有一个AngularJS网站,大部分工作正常,并且我有一个Kendo网格。我所要做的就是让网格的第一列有一个指向另一个页面的链接,使用网格数据中的ID。

我正在使用的代码如下所示,这是因为它创建了一个主要基于我要求的链接但是由于一些奇怪的原因,它用作URL的一部分的ID被四舍五入。举个例子,我需要使用的实际ID是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>

5042
2018-04-26 11:36


起源



答案:


首先,将这样的配置保留在HTML之外。这使事情更容易阅读和管理。其次,推荐的绑定方式是使用angular ng-bind 或插值({{}})方法而不是Kendo的默认模板绑定。在您提供给网格的模板中,您可以访问a 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'
    }]
};

4
2018-05-03 23:36





尝试更改代码的这一部分

'<a ui-sref=&quot;Id({ Id: #: Id # }) &quot;>'

'<a ui-sref="Id({ #: Id # })">'

4
2018-05-03 23:28





你不应该提到它自己的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'
}];

2
2018-05-04 17:07



@Sam我的回答帮助了你......这应该已经解决了你的问题.. - Pankaj Parkar


答案:


首先,将这样的配置保留在HTML之外。这使事情更容易阅读和管理。其次,推荐的绑定方式是使用angular ng-bind 或插值({{}})方法而不是Kendo的默认模板绑定。在您提供给网格的模板中,您可以访问a 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'
    }]
};

4
2018-05-03 23:36





尝试更改代码的这一部分

'<a ui-sref=&quot;Id({ Id: #: Id # }) &quot;>'

'<a ui-sref="Id({ #: Id # })">'

4
2018-05-03 23:28





你不应该提到它自己的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'
}];

2
2018-05-04 17:07



@Sam我的回答帮助了你......这应该已经解决了你的问题.. - Pankaj Parkar