Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将字符串传递给模块变量定义?_Javascript_Typescript_Model View Controller - Fatal编程技术网

Javascript 如何将字符串传递给模块变量定义?

Javascript 如何将字符串传递给模块变量定义?,javascript,typescript,model-view-controller,Javascript,Typescript,Model View Controller,我不熟悉打字脚本和MVC,所以我甚至不确定我问的问题是否正确。但我有功能相同的typescript文件,用于多个搜索屏幕。因此,我试图将其合并到一个文件中,该文件采用搜索屏幕名称和区域(字符串)并从那里开始。是否有一种方法可以将此信息从视图传递到typescript文件 这是我的打字脚本的一个小代码,用于上下文 module HarSearch { const area = ""; const searchScreen = ""; const gridName = sea

我不熟悉打字脚本和MVC,所以我甚至不确定我问的问题是否正确。但我有功能相同的typescript文件,用于多个搜索屏幕。因此,我试图将其合并到一个文件中,该文件采用搜索屏幕名称和区域(字符串)并从那里开始。是否有一种方法可以将此信息从视图传递到typescript文件

这是我的打字脚本的一个小代码,用于上下文

module HarSearch {
    const area = "";
    const searchScreen = "";
    const gridName = searchScreen + "SearchGrid";
    const searchGrid = $(`#${gridName}`);
    const gridOptionsStorageName =  searchScreen + "GridOptions";
    const filtersStorageName =  searchScreen + "SearchFilters";
    const filterFormName = "formFilters";
    var defaultGridOptions: kendo.ui.GridOptions;

    $(function(e) {
        var harSearchGridData = searchGrid.data("kendoGrid");
        KendoGridFunctions.resizeGrid(searchGrid, -25);
        defaultGridOptions = harSearchGridData.getOptions();
        loadSearchState();
    });

    // more functions...
}
area和searchName值是我希望能够设置的

编辑:考虑到下面Paleo的建议,我想也许只有把我需要的变量分解到它自己的类中,我才能更接近它。所以我已经编辑了我的代码,但我仍然需要一种方法来设置这些变量

class definitions {
    public static area = "";
    public static searchName = "";
}

module HarSearch {
    const area = definitions.area;
    const searchName = definitions.searchName;
    .
    .
    .
    // rest is the same
}

这就是我最后做的。这不是我理想的解决方案,但它是有效的。我并没有把我的变量分解成它们自己的类。他们还在舱里。我在视图中添加了一个脚本来设置全局变量,然后由模块引用,其中我的Model.SearchArea和Model.SearchName只是字符串

查看

<script type="text/javascript">
    $(function() {
        searchArea = @Html.Raw(Json.Encode(Model.SearchArea));
        searchName = @Html.Raw(Json.Encode(Model.SearchName));
    })
</script>

您可以使用类或函数来代替吗?(注意:你的“模块”是a。)我确实试过了。但我无法让它为我的应用程序工作,因为我需要访问剑道网格,当我更改为类时,我无法再获取该数据。对不起,我忘了在我的帖子里提到这个。
module Search {
    declare var searchArea: string;
    declare var searchName: string;
    var gridName: string;
    var searchGrid: JQuery;
    var gridOptionsStorageName: string;
    var filtersStorageName: string;
    const filterFormName = "formFilters";
    var defaultGridOptions: kendo.ui.GridOptions;

    $(() => {
        gridName = searchName + "SearchGrid";
        searchGrid = $(`#${gridName}`);
        gridOptionsStorageName = searchName + "GridOptions";
        filtersStorageName = searchName + "SearchFilters";

        var searchGridData = searchGrid.data("kendoGrid");
        KendoGridFunctions.resizeGrid(searchGrid, -25);
        defaultGridOptions = searchGridData.getOptions();
        loadSearchState();
    });

    .
    .
    .
    //more functions
}