Как я могу использовать одно "если", чтобы сделать ту же работу?
Надеюсь, у вас все хорошо.
У меня есть метод 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);
}
В ОДНОМ ЕСЛИ в методе 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
а также llenarTareasTemp
) используя только один, если, потому что я должен удалить два, если в методах.
Эталонное изображение.
В части B, по методу подписчика, у меня есть небольшая схема, которая ничего не делает.
http://www.uppic.com/uploads/14321765021.jpg (можно увеличить)
Пожалуйста, извините мой английский и спасибо.
РЕШЕНИЕ:
Я заменяю этот код:
if(bEncontrado){
self.conRegistro();
}else{
self.sinRegistro();
от: 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();
}
И работать так же, но с одним "если", в любом случае, спасибо вам всем, и извините, если я запутался.
2 ответа
Вы должны определить одну функцию "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
}
}
}
});
}
Я думаю, ты знаешь, что делать. Извините, мой английский не очень хорош.
Ваш вопрос не очень понятен, но, возможно, это то, что вы хотите:
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;
});
},