javascript - create - ember component
Javascript/Ember-Alternar el valor booleano de la variable (3)
this.toggleProperty(''propertyName'');
Editar: jsbin para prueba
Sé que existe el método .set () para establecer un booleano en verdadero o falso, pero quiero saber si hay un método como .set () excepto que alterna el valor de un booleano.
En este caso, boolean isEditing se está configurando a ''true''.
isEditing:false,
actions: {
edit: function(category){
category.set(''isEditing'', true);
console.log(this.get(''isEditing''))
},
}
Aquí está el html
{{#if isEditing}}
<div class="category-text">
{{view Ember.TextField valueBinding=name action="turnOffEditMode"}}
</div>
{{else}}
<div class="category-text">
{{#linkTo ''category'' this}}
{{name}}
{{/linkTo}}
</div>
{{/if}}
isEditing:false,
actions: {
edit: function(category){
category.set(''isEditing'', !category.isEditing);
console.log(this.get(''isEditing''))
}
toggleEditing : function(category){
}
}
Alternar el valor booleano es lo que necesita. O puedes cambiar tu función como a continuación.
isEditing:false,
actions: {
toggleEditing : function(category){
category.set(''isEditing'', !category.isEditing);
console.log(this.get(''isEditing''));
}
}
La respuesta de @gravityplanx es genial.
Solo quiero agregar que esta metodología funciona más allá del controlador también.
Por ejemplo, si mi Modelo tiene un objeto Post
, puedo actualizarlo desde el controlador. Solo tengo que pasar el objeto a una acción de controlador.
switch_readiness(post) {
post.toggleProperty(''isPublishReady'');
}