durandal事件不能正常工作

时间:2014-02-23 20:04:34

标签: durandal durandal-2.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很新,所以非常抱歉,如果我无法正确解释这个问题,请告诉我是否需要更多澄清。

1 个答案:

答案 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);