我是打字稿的新手,我想要做的是从一个视图发布数据(使用该视图的相应viewmodel)并从服务器(控制器)获取一些返回数据,这是一个JSON对象并将此返回的数据传递给下一个视图模型(并在下一个视图中显示)。 我想使用Typescript来做到这一点。我正在使用一些代码(我想要通常用于提交所有视图),如下面的名称common的模块。
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为undefined。 我知道我错过了一些非常基本的东西并做了一些错事,但却无法弄明白。 请帮忙。 谢谢 艾拉
答案 0 :(得分:2)
执行此行时:
import common = require('common');
将运行以下内容:
var commonData;
function SubmitPage(url: string, dataToPost: JSON, nextPage: string) {
// whatever
}
你所做的一切都是定义一个变量和一个函数。除非您调用SubmitPage 并 xhr完成,否则commonData
将不会被设置(因此将为undefined
)。