2017-09-26 30 views
0

我正在嘗試做一個基於複選框標誌的if/else。以下是我的觀點和控制器的片段。我在最後一行收到語法錯誤。任何人有任何線索?如何在SAPUI5控制器中實現基於if/else的?

查看 -

<mvc1:View 
    controllerName="sap.ui.demo.wt.controller.App" 
    xmlns="sap.m" 
    xmlns:mvc1="sap.ui.core.mvc1"> 

<CheckBox id="i1" text="Test" selected="false" select ="checkDone" enabled="true" /> 

</mvc1:View> 

控制器 -

sap.ui.define(["sap/ui/core/mvc/Controller"], function(Controller) { 
    "use strict"; 
    return Controller.extend("sap.ui.demo.wt.controller.App", { 
     checkdone: function() { 
      var check = this.byId("i1").getSelected(); 
      if (check = true) { 
       alert("Successful"); 
      } else { 
       return ''; 
      } 
     } 
    }) 
};); 

回答

0

我假設你需要刪除return ''線。

此外,我會建議你使用if (check === true)if (check)再加上它似乎如果你被

checkDone: function (oEvent) { 
    var bSelected = oEvent.getParameter('selected')); 
} 

選中複選框如果這些線索沒有幫助,檢查分號和括號更爲有利。一般來說,如果IDE錯誤,每個IDE都應該給你提供建議。我認爲你的控制器的結束應該是這樣的:

  } else { 
       return ''; 
      } 
     } 
    }); 
}); 
+0

感謝您的建議,但排空else塊也將導致錯誤即使在進行了其他您所建議的更改之後,語法錯誤仍然存​​在。 – Jim

+0

是的,看起來大括號和分號出了問題。我已經更新了我的答案。 – Rufi

0

我已經在你的代碼注意到的一些事情,

checkdone方法獲取事件,並嘗試從所選擇的數據該事件而不是id。

雖然與真實使用===而不是=

而在最後,您在錯誤的地方使用了分號。這就是爲什麼你會收到錯誤。

sap.ui.define(["sap/ui/core/mvc/Controller"], function (Controller) { 
    "use strict"; 
    return Controller.extend("sap.ui.demo.wt.controller.App", { 
     checkdone: function(oEvent){ 
      var check = oEvent.getParameter('selected'); 
      if (check === true){ 
       alert("Successful"); 
      } else { 
       return ''; 
      } 
     } 
    }); 
}); 
0

按你的代碼已經在最後一行用多餘的分號

sap.ui.define([ "sap/ui/core/mvc/Controller" ], function(Controller) { 
    "use strict"; 
    return Controller.extend("sap.ui.demo.wt.controller.App", { 
     checkdone: function() { 
      var check = this.byId("i1").getSelected(); 
      if (check = true) { 
       alert("Successful"); 
      } else { 
       return ''; 
      } 
     } 
    }) 
};);//extra semicolon 

更新代碼:

sap.ui.define(["sap/ui/core/mvc/Controller"], function(Controller) { 
    "use strict"; 
    return Controller.extend("sap.ui.demo.wt.controller.App", { 
     checkdone: function() { 
      var check = this.byId("i1").getSelected(); 
      if (check) { 
       alert("Successful"); 
      } else { 
       return ''; 
      } 
     } 
    }) 
});//remove exta semicolon 
相關問題