Variables 使用typescript将数据从一个视图模型传递到另一个视图模型
我不熟悉typescript,我想做的是从一个视图发布数据(使用该视图对应的viewmodel),并从服务器(控制器)获取一些返回数据,这是一个JSON对象,并将返回的数据传递给下一个视图模型(并在下一个视图中显示)。 我想用Typescript来做。我在名为common的模块中使用了一些代码(我通常希望使用这些代码来提交所有视图),如下所示Variables 使用typescript将数据从一个视图模型传递到另一个视图模型,variables,typescript,global,argument-passing,Variables,Typescript,Global,Argument Passing,我不熟悉typescript,我想做的是从一个视图发布数据(使用该视图对应的viewmodel),并从服务器(控制器)获取一些返回数据,这是一个JSON对象,并将返回的数据传递给下一个视图模型(并在下一个视图中显示)。 我想用Typescript来做。我在名为common的模块中使用了一些代码(我通常希望使用这些代码来提交所有视图),如下所示 export var commonData; function SubmitPage(url: string, dataToPost: JSON, ne
export var commonData;
function SubmitPage(url: string, dataToPost: JSON, nextPage: string) {
$.post(url, dataToPost, function (returnedData, textStatus) {
if (textStatus == 'success') {
commonData = returnedData;
router.navigate(nextPage);
}
else {
ShowErrorMessage(returnedData);
}
})
}
在这里,我可以看到从服务器返回的返回数据,我分配给一个变量commonData,并希望在另一个视图模型中访问它,基本上我希望commonData在所有视图模型中都是全局可访问的。
在我的另一个视图模型中,我使用了类似这样的东西
import common = require('common');
var data = ko.toJS(common.CommonData);
其中common是定义commonData的模块的名称。
现在我认为commonData是未定义的。
我知道我错过了一些非常基本的东西,做了一些错误的事情,但我无法理解。
请帮忙。
谢谢
Ira执行此行时:
import common = require('common');
将运行以下程序:
var commonData;
function SubmitPage(url: string, dataToPost: JSON, nextPage: string) {
// whatever
}
你所做的就是定义一个变量和一个函数<除非调用SubmitPage且xhr完成,否则不会设置代码>公共数据(因此将是未定义的代码) 谢谢你的评论,是的,我知道有些地方很不对劲,但是解决办法是什么呢。我不太精通打字。请不要故意破坏你自己的问题。回到一个有意义的答案,有人花了一些时间给你。