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