extjs4 app中的水平导航栏

时间:2012-12-08 02:53:05

标签: web-applications extjs yii

我想在我的应用程序中添加水平导航栏,由extjs4.1开发,我为此目的添加工具栏到视口。

var toolbar = Ext.create('Ext.toolbar.Toolbar', {
    id: 'header',
    region: 'north',
    items: [
        {
            // xtype: 'button', // default for Toolbars
            text: 'Button'
        },
        {
            xtype: 'splitbutton',
            text : 'Split Button'
        },
        // begin using the right-justified button container
        '->', // same as { xtype: 'tbfill' }
        {
            xtype    : 'textfield',
            name     : 'field1',
            emptyText: 'enter search term'
        },
        // add a vertical separator bar between toolbar items
        '-', // same as {xtype: 'tbseparator'} to create Ext.toolbar.Separator
        'text 1', // same as {xtype: 'tbtext', text: 'text1'} to create Ext.toolbar.TextItem
        { xtype: 'tbspacer' },// same as ' ' to create Ext.toolbar.Spacer
        'text 2',
        { xtype: 'tbspacer', width: 50 }, // add a 50px space
        'text 3'
    ]
});
var viewport = Ext.create('Ext.Viewport', {
    layout: {
        type: 'border',
        padding: 5
    },
    defaults: {
        split: true
    },
    items: [toolbar,{

但我想通过服务器创建水平导航栏,因为任何类型的用户都有特定的导航栏,例如管理员可以在他的导航栏中看到createUser,但其他用户无法在导航栏中看到它。我不知道如何我可以使用extjs4中的工具栏执行此操作。有没有其他方法可以做到这一点?或者如何通过服务器为任何用户创建工具栏项?

1 个答案:

答案 0 :(得分:1)

因此,例如,当您登录时 - 您从具有用户访问权限的服务器数据返回,该数据库与您的工具栏相关(或者您获取此数据的方式)。 你有你的控制器来管理你的观点。您的视图包含工具栏。但默认情况下,工具栏是隐藏的。 您可以添加工具栏中的方法,如 - showAdminButtons(),showSimpleUserButtons()。 只要您从用户访问的服务器数据获得 - 您可以检查用户是什么,并在您需要的视图方法中调用。 但我的建议是,如果您的工具栏在用户交互期间应该更改 - 创建您需要的所有按钮,并且只在正确的时间显示/隐藏您需要的内容。这将阻止每次按钮在dom中创建。否则,如果您只创建一次工具栏 - 例如,在方法showAdminButtons()中创建此按钮。 并且不要忘记规则 - 不要信任来自客户的数据。检查是否允许执行此操作。