带有承诺的 Kendo UI 网格单元格模板

KendoUI Grid Cell Template with promise

我必须使用模板来翻译网格的单元格值。

由于某些原因,我调用翻译的函数正在返回一个承诺。

我发现以下主题与我的问题相关

Asynchronous cell template

我在

中使用 angular 方法

ng-bind-html

$scope.lookUpEventNameAsync = function(data) {

    refData.events().fetch(function() {
        var eData = refData.events().data();
        var refEvent = eData.find(function(re, i, a) {
            return re.code === data.eventCode;
        });
        $("#async_tse_" + data.key).html(refEvent.name);
    });

    return $sce.trustAsHtml("<div id='async_tse_" + data.key + "'> </div>");
};

$scope.gridTimesheetColumns = [
    {
        field: "eventCode",
        title: "Event", 
        template: "<span ng-bind-html='lookUpEventNameAsync(dataItem)'> </span>"
    },
....

我做了一个类似的事情来适应我的代码并且它正在工作。

但现在的问题是它多次调用 $scope.lookUpEventNameAsync 并且从不停止调用它,这会冻结屏幕并使应用程序无法使用。

您知道为什么以及如何预防吗?

我需要一种单向数据绑定,如下所示:

$scope.gridTimesheetColumns = [
{
    field: "eventCode",
    title: "Event", 
    template: "<span ng-bind-html='::lookUpEventNameAsync(dataItem)'> </span>"
},