Typescript Kendo ui mobile MVVM事件在显示之前未触发

Typescript Kendo ui mobile MVVM事件在显示之前未触发,mobile,mvvm,kendo-ui,typescript,Mobile,Mvvm,Kendo Ui,Typescript,我正在尝试在typescript中实现MVVM事件绑定。以下内容在javascript中适用于我:- (单击事件除外??) 我已经弄明白了 对于Typescript,我不知道如何从HTML中引用viewModelConfig变量(MVVM数据模型=“viewModelConfig”需要)。所以求助于手动绑定(使用kendo.bind($(“#config”)、viewModelConfig)——这不起作用 但是如果我在启动函数外部内联delcare viewModelConfig,HTML可以看

我正在尝试在typescript中实现MVVM事件绑定。以下内容在javascript中适用于我:- (单击事件除外??)

我已经弄明白了

对于Typescript,我不知道如何从HTML中引用viewModelConfig变量(MVVM数据模型=“viewModelConfig”需要)。所以求助于手动绑定(使用kendo.bind($(“#config”)、viewModelConfig)——这不起作用

但是如果我在启动函数外部内联delcare viewModelConfig,HTML可以看到变量

declare var viewModelConfig: any;

require(['jquery', 'kendo', 'telerikReportViewer', 'app/AppMain'], ($, kendo, TRV, AppMain) => {

var app = new kendo.mobile.Application(document.body,
    {
        transition: 'overlay:up',
        init: function () {

            viewModelConfig = new kendo.observable({

                onClick: function (e) {
                    console.log("viewModelConfig:onClick");
                },

                onViewInit: function (e) {
                    console.log("viewModelConfig:onViewInit");
                },
                onViewShow: function (event) {
                    console.log("viewModelConfig:onViewShow");
                },
                onBeforeShow: function (event) {
                    console.log("viewModelConfig:onBeforeShow");
                }
            });
etc.
它现在起作用了

 <div id="config" data-role="view" data-layout="shared-layout" data-title="Config"
     data-bind="click: onClick, beforeShow: onBeforeShow, init: onViewInit, events: { show: onViewShow }">
    <h2>Configuration</h2>
</div>
require(['jquery', 'kendo', 'telerikReportViewer', 'app/AppMain'], ($, kendo, TRV, AppMain) => {
var viewModelConfig:any;

window.onerror = function (event: Event, source: string, fileno: number, columnNumber: number) {
    alert("Error:" + event.type + " source:" + source);
}

var app = new kendo.mobile.Application(document.body,
    {
        icon: "Content/images/prpsolutions_logo.png",
        platform: 'ios',
        hideAddressBar: true,
        initial: "home",
        transition: 'overlay:up',
        init: function () {

            viewModelConfig = kendo.observable({

                onClick: function (e) {
                    console.log("viewModelConfig:onClick");
                },

                onViewInit: function (e) {
                    console.log("viewModelConfig:onViewInit");
                },
                onViewShow: function (event) {
                    console.log("viewModelConfig:onViewShow");
                },
                onBeforeShow: function (event) {
                    console.log("viewModelConfig:onBeforeShow");
                }
            });
            kendo.bind($("#config"), viewModelConfig, kendo.mobile.ui.View);
        }
    });
});
declare var viewModelConfig: any;

require(['jquery', 'kendo', 'telerikReportViewer', 'app/AppMain'], ($, kendo, TRV, AppMain) => {

var app = new kendo.mobile.Application(document.body,
    {
        transition: 'overlay:up',
        init: function () {

            viewModelConfig = new kendo.observable({

                onClick: function (e) {
                    console.log("viewModelConfig:onClick");
                },

                onViewInit: function (e) {
                    console.log("viewModelConfig:onViewInit");
                },
                onViewShow: function (event) {
                    console.log("viewModelConfig:onViewShow");
                },
                onBeforeShow: function (event) {
                    console.log("viewModelConfig:onBeforeShow");
                }
            });
etc.