2

我想获得 KendoUI 中最后一个视图的 id。我已经检查了这个event物体,但没有发现任何揭示这一点的东西。

这可能是我通过点击获得的视图,也可能是我通过后退按钮获得的视图。

4

3 回答 3

2

那这个呢:

var id = $('[data-role=view]:last').attr('id');
于 2013-02-15T19:36:50.490 回答
1

此答案适用于 Kendo UI 移动应用程序,但基本原理也可用作 Kendo UI 桌面解决方案的基础。

e.view.nextViewID在我的视图的 show 事件处理程序中使用来获取前一个视图,但这停止使用 kendo ui 版本 2014.1.528。因此,我想出了以下解决方法,它使用pane.navigate事件将前一个视图存储在全局变量中:

var previousView = '';
var app = new kendo.mobile.Application();
app.pane.bind("navigate",
    function(e) {
        previousView = e.sender.view().id;
    }
);

我还发现 app.pane 一开始可能是未定义的,所以我将上述对 app.pane.bind 的调用包装在setTimeout中,延迟为 50 毫秒 - 如果有官方方法可以知道 app.pane 何时设置,请分享。

于 2014-06-18T05:33:06.233 回答
1

为了稍微改进上面的答案,可以在应用程序对象初始化时直接将事件附加到应用程序的窗格对象,因此不需要超时,因为应用程序的 init 触发有点过早。

var previous_view = '';
function store_previous_view(e)
{
    try
    {
        previous_view = e.sender.view().id;
    }
    catch(e){}
}
app = new kendo.mobile.Application({navigate: store_previous_view});

try-catch 在那里,因为事件将立即触发,并且 view() 将在第一时间返回 null。所以在使用之前应该检查previous_view 的值。

这适用于 Kendo UI 核心 2014.3.1119。我不知道这是漏洞还是有意的行为,绝对没有记录。

于 2015-07-27T22:36:03.283 回答