KendoUI:获取最后一个视图的名称

时间:2013-02-15 19:11:20

标签: kendo-ui

我想获取KendoUI中最后一个视图的id。我已经检查了event对象,但没有发现任何可以揭示这一点。

这可能是我来自一个水龙头的视图或我来自后面按钮的视图。

3 个答案:

答案 0 :(得分:2)

这个怎么样:

var id = $('[data-role=view]:last').attr('id');

答案 1 :(得分:1)

此答案适用于Kendo UI Mobile应用程序,但基本原则也可用作Kendo UI Desktop解决方案的基础。

我在我的视图的show事件处理程序中使用e.view.nextViewID来获取上一个视图,但这已停止使用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一开始可能是未定义的,所以我已将上述调用包含在setTimeout中的app.pane.bind中,延迟时间为50毫秒 - 如果有官方方式知道应用程序的时间。窗格设置请分享。

答案 2 :(得分:1)

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

'(a) (az)text'.replace(/\(\w+\)/g, function (matches) { 
          return matches } )
    .replace(/.*(?!\(\w+\)).*/g, function (matches) { // needs fixing
          return matches.toUpperCase() } 
 ) // returns "(A) (AZ)text"

try-catch是因为事件将立即触发,而view()将在第一次返回null。因此,在使用之前,应该检查previous_view的值是否合理。

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