从Kendo UI viewModel

时间:2016-10-14 13:21:45

标签: ajax mvvm kendo-ui

我发出接收身份验证令牌的请求。如果没问题,我会导航到index.html页面(参见下面的“NAVIGATE TO”index.html“)。

我该怎么做?

我尝试过:var app = new kendo.mobile.Application() app.navigate("index.html");但它不起作用。我收到以下错误:

0x800a139e - JavaScript中的错误:您的kendo移动应用程序元素不包含任何具有data-role =“view”属性集的直接子元素。确保使用正确的容器实例化移动应用程序。

谢谢

class LoginViewModel extends kendo.data.ObservableObject {
isVisible = true;
username: string = "";
password: string = ""; 
errorText: string = "";     

clickHandler: any = function (e) {
    var self = this;
    var data = { grant_type: "password", username: self.get("username"), password: self.get("password") };
    $.ajax({
        type: "POST",
        contentType: "application/x-www-form-urlencoded",
        url: "/token",
        data: data
    }).done(function (data, textStatus, jqXHR: JQueryXHR) {            
        // Cache the access token in session storage.
        sessionStorage.setItem("accessToken", data.access_token);   

        ***NAVIGATE TO "index.html"***

    }).fail(function (jqXHR: JQueryXHR, textStatus, errorThrown) {
            self.set("errorText", jqXHR.status + ': ' + jqXHR.statusText)
        });
}

constructor() {
    super();
    super.init(this);

}
}

1 个答案:

答案 0 :(得分:0)

你的导航没问题;您收到错误,因为应用程序容器不包含<div>元素,其中data-role="view"为直接子项。

你需要有类似的东西:

<body>        
    <div data-role="view" ....></div>
</body>

初始化您的应用

... = new kendo.mobile.Application(document.body 
//or another jquery selector 
);