В отношении ExtJS 4.1.x Я был в состоянии использовать пользовательскую/библиотеку оболочки для манипулирования model
, store
, view
, controller
, а также других коммунальных услуг. Поэтому мне нужно заменить котельной табличкой кода через мою обычную/оберточную библиотеку. Что касается коды, как ниже: -Любые взломы для использования оболочки js lib вместо Extjs 5.x от Sencha CMD 5.x?
var Lib = Lib || {
$class : 'Lib',
$package : 'Default',
version : '1.0.00',
getName : function(){
return Lib.$class;
},
define : function(name, config){
return Ext.define(name, config);
}
};
моего заказа библиотека, прямо сейчас я хотел бы заменить следующий код
Ext.define('Myapp.view.main.MainModel', {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.main',
data: {
name: 'Myapp'
}
});
как ниже в замене/обертки из ExtJS коды:
Lib.define('Myapp.view.main.MainModel', {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.main',
data: {
name: 'Myapp'
}
});
Но вот проблема в том, что Sencha CMD 5.x создает ошибку, когда предыдущая версия Sencha SDK, поддержка CMD для использования сторонней библиотеки просто использовать его в index.html
<script id="extwrapper" type="text/javascript" src="Lib.js"></script
но последняя Сенча CMD 5.x с ExtJS 5.x произошла ошибка компиляции. В любом случае я бы хотел использовать специальную/оболочную библиотеку вместо Extjs 5.x. У вас есть хаки? В то время как я пытался, добавив свою библиотеку клиента/обертку в app.json
в
"js": [
{
"path": "${ext.dir}/build/ext-all-rtl-debug.js"
},
{
"path": "${ext.dir}/Lib.js",
"bootstrap": true
},
{
"path": "app.js",
"bundle": true
}
],
еще его появляется Сенч CMD ошибка 5.x сборки. Никакая ссылка не поддерживает на className
даже закрытие/встроенное функционирование скрипта java. например
Ext.define((function(){ return 'Myapp.view.main.MainModel';})(), {
extend: 'Ext.app.ViewModel',
alias: alias,
data: {
name: 'Myapp'
}
});
на data
это поддерживает простой Java-скрипт закрытия/инлайн функции, но нет ссылки. например
Ext.define('Myapp.view.main.MainModel', (function(){
return {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.main',
data: {
name: 'Myapp'
}
}
})());
даже если я собираюсь использовать простую ссылку, он не работает. например
Ext.define('Myapp.view.main.MainModel', (function(){
var data = {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.main',
data: {
name: 'Myapp'
}
};
return data;
})());
Сложение Неудача для кода, как описано выше я упомянул
Sencha Cmd v5.0.2.270
[INF] Processing Build Descriptor : default
[INF] Loading app json manifest...
[WRN] C1003: Unsupported Ext.define syntax (function does not return object lite
ral) -- g:\js\extjs\myapp\app\view\main\MainModel.js:1
[WRN] C1003: Unsupported Ext.define syntax (function does not return object lite
ral) -- g:\js\extjs\myapp\app\view\main\MainModel.js:1
[ERR] C2008: Requirement had no matching files (Myapp.view.main.MainModel) -- g:\j
s\extjs\myapp\app\view\main\Main.js:12:50
[ERR]
[ERR] BUILD FAILED
[ERR] com.sencha.exceptions.ExBuild: Failed to find any files for g:\js\extjs\my
app\app\view\main\Main.js::ClassRequire::Myapp.view.main.MainModel
[ERR]
[ERR] Total time: 7 seconds
[ERR] The following error occurred while executing this line:
g:\js\extjs\myapp\.sencha\app\build-impl.xml:376: The following error occurred whi
le executing this line:
g:\js\extjs\myapp\.sencha\app\init-impl.xml:292: com.sencha.exceptions.ExBuild: Fa
iled to find any files for g:\js\extjs\myapp\app\view\main\Main.js::ClassRequire::
Myapp.view.main.MainModel
Где проблема? Не было ограничений с Extjs 4.1.3 с предыдущей версией Sencha SDK/CMD. но почему они добавили такой тип функции?
По ExtJS-4.1.3 я был в состоянии писать и компилировать как код, как показано ниже
Ext.define(Lib.view.getAbsView('V01I001001X01'), {
extend : 'Ext.form.Panel',
alias : Lib.app.getAlias('V01I001001X01'),
id : 'V01I001001X01'.toLowerCase(),
bodyStyle : {
background : 'none'
},
defaults : {
//TODO
},
initComponent: function() {
var me = this;
//TODO
me.callParent(arguments);
}
});
Which одну работы, как вроде как жесткий кода, как ниже
Ext.define('Myapp.view.m01001.m0i001.v01i001001.V01I001001X01'), {
extend : 'Ext.form.Panel',
alias : 'widget.v01i001001x01'
id : 'v01i001001x01',
bodyStyle : {
background : 'none'
},
defaults : {
//TODO
},
initComponent: function() {
var me = this;
//TODO
me.callParent(arguments);
}
});
Какая ошибка сборки команды Sencha вы видите? Кстати, это ужасно, я понятия не имею, почему вы действительно хотите сделать это в реальном сценарии. –
Я просто редактирую сообщение, чтобы прикрепить журнал ошибок для вашего наблюдения –
Вы задумывались о том, чтобы отказаться от использования команды Sencha Command? Вы можете просто добавить свои сценарии на веб-страницу или упаковать их с помощью любого другого инструмента для мини-юнинга. – Krzysztof