我在应用程序的启动功能中创建了一个视口。现在在下面的控制器中,我首先破坏了一些窗口,然后我想将我的自定义类添加到主视口。这是代码
Ext.define('MyApp.view.login.LoginController', {
extend: 'Ext.app.ViewController',
alias: 'controller.login',
onLoginClick: function() {
localStorage.setItem("TutorialLoggedIn", true);
// Now, we are free to remove the login window.
this.getView().destroy(); // this is Window class
// ==========================================
// *** Here I want to add main view to main viewport. How?
Ext.create("MyApp.view.main.Main", {renderTo: /*How to get handle to main viewport?*/});
}
});
我想将Main
视图添加到视口,但我无法引用主视口。
我怎样才能做到这一点?
这是我在发布中创建视口的方式:
launch: function() {
//
// Create viewport for the application
//
var myViewPort = Ext.create('Ext.container.Viewport', {
layout: 'fit',
html: 'Main application',
xtype:'viewport'
});
答案 0 :(得分:0)
这是我目前的解决方案。你有什么看法?
onLoginClick: function() {
localStorage.setItem("TutorialLoggedIn", true);
// Now, we are free to remove the login window.
this.getView().destroy();
// Create main view
var panel = Ext.create("MyApp.view.main.Main");
globalVar.vp.add(panel);
}
globalVar.vp
是app.js
中的全局对象,其中包含对视口的引用。
顺便说一下,当我创建Main
并将globalVar.vp
指定为renderTo
参数时,它的工作原理无效?
以下是全局的创建方式
var globalVar = { vp : ""};
Ext.application({
name: 'MyApp',
appFolder:"app",
// List views needed
views: [
'MyApp.view.login.Login',
'MyApp.view.main.Main'
],
requires: ["Ext.container.Viewport"],
launch: function() {
//
// Create viewport for the application
//
var myViewPort = Ext.create('Ext.container.Viewport', {
layout: 'fit',
html: 'Main application',
});
// Store handle to viewport - to refer to it later from somewhere else
globalVar.vp = myViewPort;
答案 1 :(得分:0)
您可以为创建的视口提供id,并使用它将主视图放在视口中。
答案 2 :(得分:0)
如果您只想访问视图端口,那么在控制器中
this.getView().up('viewport')
将返回对视口的引用