2014-06-11 31 views
0

我正在使用Angular JS和Kendo UI(与Kendo Angular Directives)来开展我正在开发的项目。目前,我正在将数据加载到包含外键字段的Kendo UI网格中。我想将其映射为显示用户友好的文本而不是Guid。Kendo UI Grid外键映射在通过ajax加载值时不起作用

所以从:

 
Value   ForeignColumn 
Some Value  [Guid] 

 
Value   ForeignColumn 
Some Value  Foreign Value Name 

我想加载用ajax的映射中使用的外键值。如果这些值在初始化网格时已经加载,那么这很好(在下面的JSFiddle中有一个例子)。我读过Kendo UI不支持使用ajax自动执行此操作,因此您必须在初始化网格之前预加载值。但是,我所看到的是,即使我这样做,网格也不会更新,即使数据源确实反映了基于加载值的更改(通过Chrome的batarang扩展可以看到)。

我做下面的调用试图触发刷新:

$scope.myGridOptions.dataSource.read(); 

的jsfiddle与不同的尝试评论:http://jsfiddle.net/ernestopye/64nwD/3/

我添加注释为一些不同的尝试我的已经让这个工作。难道我做错了什么?或者这可能是Kendo UI的Angular指令的问题?我对Kendo和Angular都很陌生,所以我猜这可能是前者。

感谢您的任何帮助。

回答

1

Mihai Bazon通过GitHub issue提供了解决方案。有一个名为k-ng-delay的未公开属性可以帮助实现这种确切的场景。他正在努力将其添加到文档中,并提供了一个示例。

<div id="grid" kendo-grid k-ng-delay="gridOpts" k-options="gridOpts"></div>

我分叉我的jsfiddle例子,其更新为使用K-NG-延迟:http://jsfiddle.net/ernestopye/ceKXg/2/

希望这可以帮助别人!