我正在使用durandal在视图模型之间传递消息。所以我使用下面的代码发送消息
return (datacontext.getData("Test, testData))
.then(app.trigger('FireEvent', `dataObsArray`))
.fail(queryFailed);
然后我使用下面的代码来检索消息
app.on('FireEvent').then(function (data) {
testObsArray(data);
});
但是当我在此行的app.on中放置断点时testObsArray(data);
它并不止于此。调试器在app.on('FireEvent').then(function (data)
我没有得到数据。为什么会这样?当我将数据传递给dataObsArray
时,有10条记录。
我不知道为什么我没有得到任何数据。哪里错了?我对Durandal很新,所以非常抱歉,如果我无法正确解释这个问题,请告诉我是否需要更多澄清。
答案 0 :(得分:3)
你的问题在这里;
.then(app.trigger('FireEvent', `dataObsArray`))
解决方法是调用app.trigger
,获取结果,然后将其作为链中的下一步传递给then()
,这不太可能是您想要的。您需要将其包含在匿名函数中,以便then()
在<{em> dataContext
调用之后可以将其命名为。
return (datacontext.getData("Test, testData))
.then(function(data) {
app.trigger('FireEvent', data?) //This depends on what getData returns
})
.fail(queryFailed);