durandal externelize对话响应

时间:2014-04-02 10:42:18

标签: javascript durandal-2.0

我在durandal项目工作。

我使用插件对话框模块。

我想编写向用户显示消息的函数并返回对话框结果。

例如:

 function isValidFunc() {

       dialog.show(myHtmlPage).then(function validDialogClosed(result) {
             return result;
       }
 }

 var isValid = isValidFunc();

在我的示例中,函数 validDialogClosed 返回结果,但isValidFunc不返回任何内容!

我希望 isValidFunc 返回结果。

请不要回答我显示 isValidFunc 功能的对话框。我需要来展示它。

感谢。

1 个答案:

答案 0 :(得分:0)

你在这里遇到两个问题。

首先关闭isValidFunc并不返回任何内容。您的return语句只返回回调函数中的一个值,该函数未被使用。

其次,dialog.show()返回一个异步的promise。这意味着isValidFunc()将在执行回调函数之前返回。

isValidFunc()绝对可以显示对话框,但它无法直接返回结果。

可以做什么,就像这样返回承诺,你可以在完成时做点什么:

 function isValidFunc() {
     return dialog.show(myHtmlPage);
 }

 isValidFunc().then(function(dialogResult) {
    //do something with dialogResult
 });