Hur man anropar en TypeScript-funktion från en Kendo-mall


Jag använder Typescript och Kendo UI i mitt projekt. Det fungerade bra tills jag ville anpassa griddata genom att anropa en funktion i gridmallen. Jag uppdaterade mallen till:

    <td>#= Simple(Id) #</td>

och lade till funktionen. Det fungerade bra och visade id i cellen.

<script>
    function Simple(id) {
        return id;
    }
</script>

Problemet är att jag vill definiera en enkel metod i min Typescript-klass, men jag kan inte få rätt omfattning för funktionen. Jag försökte lägga till den i min vyklass eller dataSource, men inget fungerade. Kolumnerna kan inte renderas eftersom funktionen är odefinierad. Jag vill inte definiera en global funktion. Hur kan jag binda en funktion som definieras i en Typescript-klass till rutnätet?

Svar #1

Vanligtvis är det som skickas till mallen en instans av en Kendo-modell, så du skulle behöva definiera din metod på kendo.data.Model.fn.

Svar #2

Du behöver deklarera det i ett globalt sammanhang.

module MyModule {
    export class MyClass {
    //Do wathever you want
    //Template
    <td>#= Simple(Id) #</td>
    }
}

function Simple(id) {
        return id;
}

referens: Kan inte anropa funktion i TypeScript från Kendo-mall i KendoTreeList