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