我曾经在MVC中使用extJs 4,现在我想更改为extjs 5并将ViewModel和ViewController添加到其中。但我没有权限安装SenchaCmd来生成和编译应用程序,如指南所述。我想知道SenchaCmd是否必然在ExtJs5中,因为当我为视图添加一个ViewController时,会出现错误 - 未捕获的错误:[Ext.createByAlias]无法识别的别名:controller.mainViewController。
如果没有SenchaCmd,但我想为我的应用添加ViewController和ViewModel,我该怎么办?
Ext.define('MyApp.view.main.MainView', {
extend: 'Ext.tab.Panel',
alias: 'widget.MainView',
// requires: ['main.MainViewModel'],
controller: 'mainViewController',
// viewModel: {
// type: 'mainView'
// },
tabPosition: 'left',
tabRotation: 0,
defaults: {
textAlign: 'left',
bodyPadding: 15
},
items: [{
title: 'test',
items: [{
xtype: 'button',
listeners: {
onClick: 'onTest'
}
}]
}]
});
Ext.define('CaTools.view.main.MainViewController', {
extend: 'Ext.app.ViewController',
alias: 'controller.mainViewController',
onTest: function() {
console.log('test -- ');
}
});
Error - Uncaught Error: [Ext.createByAlias] Unrecognized alias: controller.mainViewController
非常感谢!!
答案 0 :(得分:0)
Sencha CMD正在为你做的一切 - 在这种情况下,无论如何 - 正在构建一个引导程序文件。作为其中的一部分,它知道当它引入View时,它看到视图具有viewModel和controller属性,它按惯例(模型和控制器)查找ViewModel和ViewController类。
所以你可以自己做。只需require
View中的ViewModel和ViewController类,就像require
任何其他类一样。
(作为替代方案 - 将ViewModel和ViewController定义为View的Javascript文件中的其他类;这种方式在查看时始终加载