2016-06-14 6 views
0

외부 자바 스크립트 파일의 함수 (Grid_OnRowSelect)에 Events 속성이 연결되어있는 검도 표가 있습니다. 외부 자바 스크립트 파일에는 다른 함수가 있습니다 (예 : * $ ("# btnS"), on ('click'), function() {.... *) 그 밖의 몇몇 함수가 있습니다. Grid_OnRowSelect 함수와 다른 기능은 내가 모든 기능에 액세스 할 수있는보기 (cshtml)에서 자바 스크립트 파일을 외부에 변수를 전달하는 방법에 대해 설명합니다. 변수의 공통 집합을 사용합니다.모든 함수에서 액세스 할 수있는 외부 JavaScript 파일에 변수를 전달하는 방법

@(Html.Kendo().Grid<MyModel>() 
.Name("rGrid") 
.Events(events => events.Change("Grid_OnRowSelect")) 
.Columns(columns => 
{ 
    columns.Command(command => 

....... 
....... 
....... 

JS 외부 파일

var MYFunc = MYFunc || (function() { 
var _args = {}; // private 

return { 
    init: function (Args) { 
     _args = Args; 
     // some other initialising 
    }, 
    helloWorld: function() { 
     alert('Hello World! -' + _args[0]); 
    }, 
    Grid_OnRowSelect: function (e) { 

     var data = this.dataItem(this.select()); 
     detailRequestID = data.ID; 

     var url = _args[1] + "/" + detailRequestID; 
     window.location.href = url; 
    }, 
    onError: function (e, status) { 
     //alert("A server error has occurred!"); 
     var url = _args[2]; 
     window.location.href = url; 

    } 
}; 
입니다

}());

어떻게 인수
<script> 
    window.onload = function(){ 
    var searchUrl = @Url.Action("Search"); 
    var updateUrl = @Url.Action("Update"); 
    var errorUrl = @Url.Action("ServerError", "Error"); 
}; 
MYFunc.init([searchUrl, updateUrl, errorUrl]);</script><script src="~/Scripts/Index.js"></script> 

그러나 Grid_OnRowSelect 또는 기능 중 하나가 _args 실행됩니다 때 정의되지를 전달하는 데 노력하고있어. 올바르지 않은 것은 무엇입니까?

감사합니다.

답변

0

javascript의 함수 외부에서 변수를 선언하면이 코드는 나중에로드 된 모든 코드 JS 코드에서 사용할 수 있습니다. 파일이 외부 파일이라는 사실은 중요하지 않습니다. 단지 전역 변수를 설정 한 곳에서 DOM으로로드됩니다.

var globalVar = "I am global"; 
function test(){ 
    var copy = globalVar;//copy now == "I am global" 
    var nonglobalVar = "I am not";//this is local to the function 
} 
var global2 = globalVar;//global2 now == "I am global" 
var anotherVar = nonglobalVar;//this line will throw an error because variable is out of scope. 

또 다른 일반적인 전술은 HTML의 숨겨진 필드에 값을 작성하는 것입니다 다음 외부 함수에서 해당 액세스 할 수 있습니다.