📅  最后修改于: 2020-10-19 03:04:20             🧑  作者: Mango
Sencha Touch中定义了某些方法来声明依赖关系,一种在应用程序内,另一种在类内。
让我们看一下定义依赖关系的不同方法。
在这里,我们在创建Ext.application时声明所有依赖项。
Ext.application({
name: 'MyApp',
views: ['StudentsView'],
models: ['StudentsModel'],
controllers: ['StudentsController'],
stores: ['StudentsStore'],
profiles: ['Phone', 'Tablet']
});
现在,当应用程序被加载时,所有依赖项将被同时加载。其他文件的路径将是-
上面的声明方式不仅加载了文件,还决定了应将哪个配置文件保持为活动状态。加载控制器后,请确保将其实例化。加载商店后,将实例化它们并提供一个ID(如果尚未提供)。
当我们在应用程序中使用配置文件时,可能只有某些特定的配置文件仅需要很少的功能。
特定于配置文件的依赖关系在配置文件本身中声明,而不是在应用程序级别声明中声明。
Ext.define('MyApp.profile.Tablet', {
extend: 'Ext.app.Profile', config: {
views: ['StudentView'], controllers: ['StudentController'], models: ['StudentModel']
}
});
无论配置文件是否处于活动状态,都将加载依赖项。但是,基于活动配置文件,会发生进一步的处理,例如实例化控制器和存储。
当我们拥有更大的应用程序时,我们将拥有多个控制器,模型,视图和存储。
在较大的应用程序中保持模块化始终是一件好事。为此,我们可以定义子文件夹,并在声明依赖项时使用子文件夹名称进行声明。
Ext.application({
name: 'MyApp',
controllers: ['Controller', 'nested.NewController'],
views: ['class.Cview', 'SView']
});
在上述情况下,将加载以下文件-
我们可以通过给出类的完全限定名称来指定应用程序外部的依赖项,如下所示:
Ext.Loader.setPath({
'Class': 'Class'
});
Ext.application({
views: ['Class.view.LoginForm', 'Welcome'],
controllers: ['Class.controller.Sessions', 'Main'],
models: ['Class.model.User']
});
在上述情况下,将加载以下文件-