2012-05-22 12 views

Respuesta

9

Luke Melia creó un repository que muestra cómo usar Ember.js con jQuery UI.

Base en el ejemplo de Lucas, que creó una clase JQ.Dialog que representa un cuadro de diálogo jQuery UI, consulte http://jsfiddle.net/pangratz666/aX7x8/:

// Create a new mixin for jQuery UI widgets using the Ember 
// mixin syntax. 
JQ.Widget = Em.Mixin.create({ 
    // as defined in 
    // https://github.com/lukemelia/jquery-ui-ember/blob/master/js/app.js#L9-95 
    ... 
}); 

JQ.Dialog = Ember.View.extend(JQ.Widget, { 
    uiType: 'dialog', 
    uiOptions: 'autoOpen height width'.w(), 

    autoOpen: false, 

    open: function() { 
     this.get('ui').dialog('open'); 
    }, 
    close: function() { 
     this.get('ui').dialog('close'); 
    } 
}); 

El diálogo se crea entonces así:

var dialog = JQ.Dialog.create({ 
    height: 100, 
    width: 200, 
    templateName: 'dialog-content' 
}); 
dialog.append(); 

Ember.run.later(function(){ 
    dialog.open(); 
}, 1000); 


Además de jQuery UI puede usar flame.js, una biblioteca de widgets/UI para Ember.js. Este proyecto cuenta con el apoyo de un panel, ver http://jsfiddle.net/qUBQg/:

// the following code sample has been taken from http://jsfiddle.net/qUBQg/ 
App.TestPanel = Flame.Panel.extend({ 
    layout: { width: 400, height: 200, centerX: 0, centerY: -50 }, 
    // Controls whether all other controls are obscured (i.e. blocked 
    // from any input while the panel is shown) 
    isModal: true, 
    // This controls the visual effect only, and works only if 
    // isModal is set to true 
    dimBackground: true, 
    // Set to false if you want to e.g. allow closing the panel only 
    // by clicking some button on the panel (has no effect if isModal 
    // is false) 
    allowClosingByClickingOutside: true, 
    // Allow moving by dragging on the title bar - default is false 
    allowMoving: true, 
    // Title is optional - if not defined, no title bar is shown 
    title: 'Test Panel', 

    // A Panel must have exactly one child view named contentView 
    contentView: Flame.LabelView.extend({ 
     layout: { left: 20, top: 90, right: 20, bottom: 20 }, 
     textAlign: Flame.ALIGN_CENTER, 
     value: 'This is a panel.' 
    }) 
}); 

// later in the code 
App.TestPanel.create().popup(); 
+0

Gracias Pangratz, pero yo sólo quiero crear un diálogo sencillo como usar $ ('foo') de diálogo de la librería jQuery.. ¿Podrías darme alguna idea? – secretlm

+0

Bueno, entonces deberías dar más detalles sobre tu pregunta. Actualízalo y agrega lo que realmente quieres hacer ... – pangratz

+0

Muchas gracias, pangratz. – secretlm

Cuestiones relacionadas