0

我正在使用 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 真的很陌生,非常抱歉,如果您需要更多说明,请告诉我。

4

1 回答 1

3

你的问题就在这里;

.then(app.trigger('FireEvent', `dataObsArray`))

解决的方法是调用app.trigger,获取结果,并将其作为链中的下一步传递给then(),这不太可能是您想要的。您需要将其包装在一个匿名函数中,以便在调用then()调用它。dataContext

return (datacontext.getData("Test, testData))
                .then(function(data) {
                    app.trigger('FireEvent', data?) //This depends on what getData returns
                })
                .fail(queryFailed);
于 2014-02-24T04:37:24.713 回答