Ember.TextArea establece la entrada a través del asistente del manillar
Frecuentes
Visto 3,115 equipos
2
Obtuve un ayudante Ember.Handlerbars.JSON, que formatea un valor dado en una cadena JSON con sangría. Me gustaría establecer el contenido (valor) de un área de texto como esta:
{{#view Ember.TextArea}}
{{JSON someValue}}
{{/view}}
Esto no funciona, ya que debería establecer el atributo "valor" de las áreas de texto en su lugar.
Sin embargo, esto tampoco funciona.
{{view Ember.TextArea valueBinding="JSON someValue"}}
1 Respuestas
5
Puede resolver esto usando una propiedad calculada, vea http://jsfiddle.net/pangratz666/3A33H/:
Manillar:
<script type="text/x-handlebars" >
{{#with App.jsonController}}
{{view Ember.TextArea valueBinding="formatted" rows="10" }}
{{/with}}
</script>
JavaScript:
App = Ember.Application.create({
formatJSON: function(obj) {
return JSON.stringify(obj, null, '\t');
}
});
App.jsonController = Ember.Object.create({
content: {
abc: 123,
foo: 'hello'
},
formatted: function() {
var obj = this.get('content');
return App.formatJSON(obj);
}.property('content')
});
Actualiza tus comentarios:
En el violín en el comentario ( http://jsfiddle.net/4QNur/ ) estás declarando {{view Ember.TextArea valueBinding="JSON App.someComplexValue"}}
: esto no funciona desde valueBinding
toma un camino como argumento y no como una expresión, como JSON App.someComplexValue
. Si desea vincular a un valor transformado, simplemente cree una propiedad calculada y vincúlela. Esa es la forma Ember de hacer esas cosas...
En tu pregunta original tienes el siguiente código:
{{#view Ember.TextArea}}
{{JSON someValue}}
{{/view}}
Esto no funciona en este caso, ya que el value
para Ember.TextArea
sólo se puede configurar a través de un value
respectivamente valueBinding
:
{{view Ember.TextArea valueBinding="App.controller.transformedComplexValue" }}
Respondido 04 Jul 12, 13:07
¿Hay alguna forma de crear programáticamente una instancia de App.JSONController en la plantilla del manillar? como: {{#with App.JSONController someValue}}... - labio
ahh el violín: jsfiddle con el asistente JSON ... todavía no estoy muy acostumbrado a jsfiddle - labio
No desea crear un controlador dentro de una plantilla de manillar. Las propiedades computadas son el camino a seguir... - pangratz
Supongo que tienes razón. Fui demasiado perezoso para implementar un controlador adecuado para esta tarea. - labio
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas binding textarea ember.js helper or haz tu propia pregunta.
¿Cómo se ve tu ayudante JSON? ¿Puede proporcionar un JSFiddle? Puedes usar esto como punto de partida: jsfiddle.net/pangratz666/eTcDu - pangratz
aquí está jsfiddle.net/hA2A6 - lipp
¿Dónde está tu ayudante JSON? No está incluido en la muestra... - pangratz