【问题标题】:Durandal dialog repositioning not workingDurandal 对话框重新定位不起作用
【发布时间】:2016-01-06 22:56:10
【问题描述】:

我一直在尝试重新定位 Durandal 对话框,但没有成功。我正在使用的代码如下所示:

this.compositionComplete = function (child, parent, context) {
    dialog.getContext().reposition(child);
};

这是我的对话模型中的 compositionComplete() 函数。

一旦被调用,它就不会出错,它什么也不做,对话框也不会重新定位。

我做错了什么?我尝试在这里关注 Durandal 的文档:http://durandaljs.com/documentation/Showing-Message-Boxes-And-Modals.html

【问题讨论】:

  • 您提供的信息很少,很难说清楚。您能否提供更多关于dialog 是什么的上下文,或者child 是否具有价值?
  • 这都是 Durandal 框架的一部分。在创建对话框时,Durandal 框架会调用 compositionComplete() 函数。这有点像 C# 中的覆盖方法。 Durandal 将其称为框架生命周期的一部分。我不确定孩子的输入是什么。我尝试按照 Durandal 文档中的说明进行操作:durandaljs.com/documentation/…
  • @Andrew 只有自定义对话框上下文具有compositionComplete 挂钩。您的对话框是否使用自定义对话框上下文?或者你的意思是这个钩子在你的视图模型上?
  • @Brett 我对 Durandal 有点陌生,所以我会尽力回答你的问题。我相信这是一个自定义对话框上下文。它有自己的视图和视图模型。

标签: javascript durandal


【解决方案1】:

Dialog.getContext() 返回默认上下文,而不是 您的 自定义上下文。

如果您确实在使用自定义对话框上下文,请尝试以下示例 compositionComplete 方法:

this.compositionComplete = function (child, parent, context) {

    var dialogModel = dialog.getDialog(this);
    dialogModel.context.reposition(child);

}

在此版本中,您将获得 对话框模型 用于您的 视图模型。它是一个包含对话框相关属性和方法的对象。

在下一行,您将通过对话框模型在自定义上下文中调用“重新定位”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多