変数のスコープは Java と JavaScript で同じです。私はjavascriptに変数を持っており、onLoadページのときに割り当てられます。しかし、プロジェクトに関数を追加し続けている間、この変数を NULL として取得しました。この変数が再度割り当てられていないことを何度も確認しましたが、同じ名前のローカル変数を使用している場所 (関数内) はほとんどありませんでした。これがグローバル変数の値に影響を与えるとは思えません。私は今、それらに触れたくない巨大な機能を持っています。解決するのを手伝ってください。
ここにコード: で
<script>
// other variables goes here.
var BUSINESS_CODE_CUSEUR = "<%=BusinessLine.BUSINESS_LINE_CODE_GLOBAL_CUSTODY_UK%>";
var branchId = null;
//on Refresh branch,
function refreshByBranch(){
branchId = dijit.byId("branchList").attr("value");
// other functions calling here who ever is depending on branch.
searchTeamList(branchId);
searchCustomer(branchId);
searchClientRelationshipFsList();
//and so on.
}
//my function is here: calling on an image click.
function showSelectRootCauseDialog(){
var br = dijit.byId("branchList").attr("value");
console.info("showSelectRootCauseDialog - branchId:" + branchId);
console.info("showSelectRootCauseDialog - br:" + br);
// getting null on line 2.
}
</script>
-- 問題はこのように解決されました。すべての機能に変更を加えました。
function refreshByBranch(){
branchId = dijit.byId("branchList").attr("value");
var url = contextPath + "/" + servlet + "?cmd_query_for_user=1&branchId=" + branchId;
originatorUserStore.url = url;
ownerUserStore.url = url;
resolverUserStore.url = url;
searchTeamList(branchId);
searchCustomer(branchId);
searchClientRelationshipFsList();
if(currentBusinessLineCde == gcBusinessLineCde){
// var branchId = dijit.byId("branchList").attr("value");
////-- Problem solved here. by making comment.
searchGroupList(branchId);
searchLocationList(branchId);
searchClientList(branchId);
searchAccountManagerList(branchId);
}
}