【发布时间】:2015-05-21 02:58:35
【问题描述】:
希望你们一切都好。
我有方法subscriber:
subscriber: function() {
var self = this;
self.hideError();
self.sb.subscribe('seleccionProyecto_seleccionarTarea', function(data) {
console.info(data);
console.info(data.datos);
// HERE I NEED TO RESUME THE CODE
self.showModal();
self.idPanel=data.iCont;
});
},
我有方法llenarTareasTemp:
llenarTareasTemp: function(data){
var self = this;
$("#opt1").html("");
var bEncontrado=false; // REPLACED BY RETURN FALSE.
$.each(data.datos, function(index,value) {
if(value!=undefined){
for(var iCont=0;iCont<value.length;iCont++){
if(self.objTareasTemp.idProyecto==value[iCont].idProyecto){
console.info(self.objTareasTemp.idProyecto,"=",value[iCont].idProyecto)
$("#opt1").append("<option>"+value[iCont].nombreTarea+"</option>");
$("#select_seleccionar_proyecto_id").selectpicker('refresh');
bEncontrado=true; // REPLACED BY RETURN TRUE.
}
}
}
});
//if(bEncontrado){
// self.conRegistro();
//}else{
// self.sinRegistro();
// self.llenarTareasRegistradas(self.aDataServer);
//}
},
我有方法llenarTareasRegistradas:
llenarTareasRegistradas: function(data){
var self = this;
$("#opt2").html("");
for (var i = 1; i < data.length; i++){
if(data[i].nombre_tarea != null){
var cTareas = "<option value="+i+">"+data[i].nombre_tarea+"</option>";
$("#opt2").append(cTareas);
$("#select_seleccionar_proyecto_id").selectpicker('refresh');
var bEncontrado=true; // REPLACED BY RETURN TRUE.
}else{
$("#opt2").append("");
$("#select_seleccionar_proyecto_id").selectpicker('refresh');
bEncontrado=false; // REPLACED BY RETURN FALSE.
}
}
// if(bEncontrado){
//self.conRegistro();
//}else{
// self.sinRegistro();
//}
},
这些代码运行良好,但我必须总结一下:
if(bEncontrado){
self.conRegistro();
}else{
self.sinRegistro();
}
还有这个:
if(bEncontrado){
self.conRegistro();
}else{
self.sinRegistro();
self.llenarTareasRegistradas(self.aDataServer);
}
IN ONE IF,在方法@987654330@ 中,在console.info(data.datos); 和self.showModal(); 之间。
`self.conRegistro();` and `self.sinRegistro();` they are methods that call messages only.
要做我想做的事,我认为我必须替换一些东西。(我评论了那些东西)
SO 在 subscriber 方法中,在 console.info(data.datos); 和 self.showModal(); 之间,我不知道如何仅使用一个 if 来订购两个 if(bEncontrado)(来自 llenarTareasRegistradas 和 llenarTareasTemp),因为我必须删除方法中的两个 if。
参考图片。
在 B 部分中,在订阅者方法中,我有一个什么都不做的小方案。
http://www.uppic.com/uploads/14321765021.jpg(可以放大)
请原谅我的英语,谢谢。
解决方案:
我替换这段代码:
if(bEncontrado){
self.conRegistro();
}else{
self.sinRegistro();
by : return bEncontrado;在方法llenarTareasTemp和在方法llenarTareasRegistradas
在subscriber 方法中,在console.info(data.datos); 和self.showModal(); 之间我输入:
var temp = Boolean(self.llenarTareasTemp(data));
var server = Boolean(self.llenarTareasRegistradas(self.aDataServer));
if (temp || server) {
self.conRegistro();
}else{
self.sinRegistro();
}
并以相同的方式工作,但使用一个 "if" ,无论如何,谢谢大家,如果我感到困惑,请见谅。
【问题讨论】:
-
bEncontrado方法中没有bEncontrado变量。这是其他两种方法中的局部变量。 -
您希望
subscriber调用其他方法并在其if中使用它们的值吗?
标签: javascript jquery methods return-value