ember.js - name - Acceda al contenido dentro de una función de control de ascuas
ember onclick (1)
Está accediendo a la propiedad de content
correctamente. La razón por la que undefined
está undefined
es porque la propiedad del content
está definida.
Ahora, la razón por la que su content
no está definido es porque Ember.js establece automáticamente el contenido del controlador en el valor de retorno del gancho model
en la ruta.
Como no definió un método de model
, el valor de retorno si este gancho undefined
está undefined
y, por lo tanto, Ember.js está configurando la propiedad del content
la controladora como undefined
.
Solución:
Cree un gancho de modelo ficticio que simplemente devuelva una matriz vacía:
App.ActivecallsRoute = Ember.Route.extend({
setupController:function(controller,model){
$.ajax({
url:''requests/activecalls.php'',
type:''POST'',
success:function(data){
App.Cdrglobal.set(''active_call'',data.length);
controller.set(''content'',data);
}
});
},
model: function() {
return [];
}
});
Tengo una ruta, un controlador, una vista como esta. El problema es que llamé a la función de controlador reloadTime
desde la vista, pero en la función reloadTime
, reloadTime
el contenido de este controlador, pero dice que undefined
está undefined
. Mi pregunta es cómo acceder a este contenido en la brasa?
App.ActivecallsRoute = Ember.Route.extend({
setupController:function(controller,model){
$.ajax({
url:''requests/activecalls.php'',
type:''POST'',
success:function(data){
App.Cdrglobal.set(''active_call'',data.length);
controller.set(''content'',data);
}
})
}
});
App.ActivecallsController = Ember.ArrayController.extend({
content:[],
deleteCall:function(model){
var obj = this.findProperty(''ID'',model.ID);
App.Cdrglobal.set(''active_call'',App.Cdrglobal.active_call-1);
this.removeObject(obj);
},
reloadTime:function(){
console.log(this.get(''content''));//console undefined
console.log(this.content);console undefined
}
});
App.ActivecallsView = Ember.View.extend({
didInsertElement:function(){
this.get(''controller'').reloadTime();
}
});