Durandal showMessage不承认断线

时间:2014-03-20 23:21:26

标签: javascript html durandal

我尝试使用Durandal来显示消息,但我无法理解如何突破,所以我将所有信息都放在一行中。 任何人都可以帮忙吗?

HTML

if(bid.exposed){
     var msg = 'Bidder details : ' +
        "\n" + 'Business Name : '+ bid.businessName +
        "\n" + 'Username' : ' + bid.fullName;
     app.showMessage(msg, Expose, 'Confirm');
}

2 个答案:

答案 0 :(得分:1)

尝试在显示消息时处理html时,请尝试将/n更改为<br/>

if(bid.exposed){
     var msg = 'Bidder details : ' +
        "<br/>" + 'Business Name : '+ bid.businessName +
        "<br/>" + 'Username' : ' + bid.fullName;
     app.showMessage(msg, Expose, 'Confirm');
}

修改

深入研究代码,文件scripts/durandal/dialog.js包含对话框的代码。

这是为对话框生成HTML的代码。

  MessageBox.defaultViewMarkup = [
        '<div data-view="plugins/messageBox" class="messageBox">',
            '<div class="modal-header">',
                '<h3 data-bind="text: title"></h3>',
            '</div>',
            '<div class="modal-body">',
                '<p class="message" data-bind="text: message"></p>',
            '</div>',
            '<div class="modal-footer" data-bind="foreach: options">',
                '<button class="btn" data-bind="click: function () { $parent.selectOption($data); }, text: $data, css: { \'btn-primary\': $index() == 0, autofocus: $index() == 0 }"></button>',
            '</div>',
        '</div>'
    ].join('\n');

我们如何试图显示细节的问题在线

'<p class="message" data-bind="text: message"></p>',

根据knockout.js Documentation on text binding,它不会呈现html元素。

有几种选择。

  1. 创建Custom HTML Dialog template and a Custom Dialog js file
  2. 修改Durandal dialog.js文件(快速轻松地让你走出困境,但不推荐)
  3. 我认为最好的做法是创建自己的对话框模板,以显示您想要的信息。有关如何在(dfiddle) durandal samples.中执行此操作的示例 Durandal Sample ZIP file

答案 1 :(得分:1)

您可以使用我的dialog.js版本,我已经请求将其拉到2.1.0分支,该分支仍在工作中。您可以在以下位置找到我的dialog.js版本:

https://github.com/TommiGustafsson/Durandal/blob/master/src/plugins/js/dialog.js

在该版本中,我已将文本绑定更改为html绑定以及许多其他改进。然后,您可以使用&lt; br /&gt;标记或消息框中的任何其他html。如果您想了解我所做的其他改进,您可以在以下文章中了解它们:

https://github.com/BlueSpire/Durandal/pull/362