[SOLUCIONADO] Empaquetando mi codigo (namespace)
Saludos amigos. Estoy acostumbrandome a trabajar con namespace. La duda es la siguiente: he visto paginas (xej http://www.waterandhealth.eu/) donde
se crean distintos namespace. ¿Como hago para implementar esto?. Es decir crear por ejemplo 2 namespace. Desde ya muchas gracias.
Por si alguien tiene la misma inquietud. Aqui un ejemplo sencillo con tres namespace.
Ext.namespace('ejemplo.ns2');
Ext.QuickTips.init();
ejemplo.ns2.Uno ={
init: function (){
// Make panels
var tree = new MyTree.A();
//var tree = {xtype: 'mitree'};
console.debug(tree);
var form = new MyForm.B();
//var form = {xtype: 'miform'};
console.debug(form);
// Tell form to watch for nodeSelected and rootSelected from tree
// THIS IS THE GLUE!
form.relayEvents(tree, ['nodeSelected', 'rootSelected']);
// Layout on screen
var viewport = new Ext.Viewport({
layout:'border',
items:
[
form,
tree
],
});
}
};
Ext.namespace("MyTree");
// Tree Panel
MyTree.A = Ext.extend(Ext.tree.TreePanel, {
region: 'west',
width: 150,
viewConfig: {
forceFit: true
},
initComponent: function()
{
MyTree.A.superclass.initComponent.call(this);
var root = new Ext.tree.TreeNode({
allowDrop: false,
text: "my root",
expanded: true
});
root.on('click',
function() {
this.fireEvent('rootSelected');
});
this.setRootNode(root);
var anode = new Ext.tree.TreeNode({
allowDrop: false,
text: "my node",
});
anode.on('click',
function() {
this.fireEvent('nodeSelected', anode.text);
});
root.appendChild(anode);
var bnode = new Ext.tree.TreeNode({
allowDrop: false,
text: "another node",
});
bnode.on('click',
function() {
this.fireEvent('nodeSelected', bnode.text);
});
root.appendChild(bnode);
}
});
//Ext.reg('mitree',MyTree.A);
Ext.namespace("MyForm");
// Form Panel
MyForm.B = Ext.extend(Ext.form.FormPanel, {
region: 'center',
title: "Sample Form",
layout: 'fit',
doSomething: function(a) {
this.getForm().findField('node').setValue(a);
},
doSomethingElse: function() {
this.getForm().findField('node').setValue('');
},
initComponent: function() {
Ext.apply(this, {
items: {
xtype: 'fieldset',
labelPad: 10,
defaultType: 'textfield',
labelAlign: 'right',
items: [
{
xtype: 'field',
id: 'node',
name: 'node',
fieldLabel: 'Selected Node',
labelSeparator: '',
width: 250,
}
]
}
});
MyForm.B.superclass.initComponent.call(this);
// Add a listener for nodeSelected event
this.on('nodeSelected',
function(a, b) {
// call my method when nodeSelected event is fired
this.doSomething(a)
});
// Add a listener for rootSelected event
this.on('rootSelected',
function() {
// call my method when rootSelected event is fired
this.doSomethingElse()
});
}
});
Y agrego esto en el html:
Ext.BLANK_IMAGE_URL = "../resources/ext-3.2.1/resources/images/default/s.gif";
Ext.onReady(ejemplo.ns2.Uno.init, ejemplo.ns2.Uno);
Los namespaces pueden estar en archivos js distintos.
Gracias. Espero a alguien le sirva.
Gracias por la pronta respuesta. La creacion de los ns me quedo claro. Seguramente no supe darme a entender.
La consulta es la siguiente: ¿Como seria un ejemplo donde al NO utilizar dos namespace podria generarse algun tipo de conflicto?. Y como seria la resolucion. Es decir como interactua (si vale el termino) el codigo de uno de los ext.ns y el otro ns. Sera posible algun ejemplo basico?
Gracias nuevamente.
¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook
Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.