我希望你们一切顺利。
我有方法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,方法subscriber
,console.info(data.datos);
和self.showModal();
之间。
`self.conRegistro();` and `self.sinRegistro();` they are methods that call messages only.
为了做我想做的事,我认为我必须更换一些东西。(我评论过这些事情)
在方法subscriber
中,在console.info(data.datos);
和self.showModal();
之间,我不知道两个if(bEncontrado)
(来自llenarTareasRegistradas
和{{1}的顺序})只使用一个if,因为我必须在方法中删除两个。
参考图像。
在B部分,在订阅者方法中,我有一个无效的方案。
http://www.uppic.com/uploads/14321765021.jpg(你可以放大)
对不起我的英语,谢谢你。
SOLUTION:
我替换了这段代码:
llenarTareasTemp
by: if(bEncontrado){
self.conRegistro();
}else{
self.sinRegistro();
方法return bEncontrado;
和方法llenarTareasTemp
在方法llenarTareasRegistradas
中,在subscriber
和console.info(data.datos);
之间我放了:
self.showModal();
以相同的方式工作,但只有一个“if”,无论如何,谢谢大家,如果我感到困惑,请对不起。
答案 0 :(得分:1)
你应该像这样定义一个函数“isEncontrado”:
/**
* if encontrado call self.conRegistro() else call self.sinRegistro()
* @param b is Encontrado
* @param isNeedCall is need call self.llenarTareasRegistradas()
*/
isEncontrado : function(b, isNeedCall) {
if (b) {
self.conRegistro();
} else {
self.sinRegistro();
if (isNeedCall)
self.llenarTareasRegistradas(self.aDataServer);
}
}
然后调用此函数。例如:
llenarTareasTemp: function(data){
var self = this;
$("#opt1").html("");
isEncontrado(false); // call function isEncontrado
$.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');
isEncontrado(true, true); //call function isEncontrado
}
}
}
});
}
我想你知道该怎么做。对不起,我的英语不是很好。
答案 1 :(得分:0)
你的问题不是很清楚,但也许这就是你想要的:
subscriber: function() {
var self = this;
self.hideError();
self.sb.subscribe('seleccionProyecto_seleccionarTarea', function(data) {
console.info(data);
console.info(data.datos);
if (self.llenarTareasTemp(data)) {
self.conRegistro();
} else {
self.sinRegistro();
self.llenarTareasRegistradas(self.aDataServer);
}
self.showModal();
self.idPanel=data.iCont;
});
},