0

我在我的 AngularJS 脚本中有一个 ui.bootstrap confirmdlg:

var modalDlgOptions = {
  closeButtonText: "No",
  actionButtonText: "Yes",
  headerText: "my header text",
  bodyText: "my body text" 
};
confirmDlg.showModal({}, modalDlgOptions).then(function (result) {
  // todo something         
});     

这工作正常。但现在我想格式化bodyText。我需要这样的新行:

first line in my body text
second line in my body text
...
last line in my body text

当我使用

bodyText: "first line in my body text<br>second line in my body text<br>...<br>last line in my body text";

或者

bodyText: "first line in my body text&lt;br&gt;second line in my body text&lt;br&gt;...&lt;br&gt;last line in my body text";

我明白了

first line in my body text&lt;br&gt;second line in my body text&lt;br&gt;...&lt;br&gt;last line in my body text

在我的对话框的输出中,但不是新行

是否可以格式化 confirmDlg 的 bodyText 以及如何格式化?

谢谢你的提示,托马斯

4

2 回答 2

0

我找到了这个解决方案:

var modalDlgOptions = {
  closeButtonText: "No",
  actionButtonText: "Yes",
  headerText: "my header text",
  bodyText: "" 
};

confirmDlg.showModal({}, modalDlgOptions).then(function (result) {
  // todo something         
}); 

setTimeout(function() { 
  var modalBody = document.getElementsByClassName("modal-body");
  modalBody[0].innerHTML = "first line in my body text<br />second line in my body text<br /> ... <br />last line in my body text";
}, 100);    

感谢您的评论,托马斯

于 2016-03-29T09:32:40.363 回答
0

改进以前的解决方案:

var waitForElementByClassName  = function(element, timeout, callBack) {
      window.setTimeout(function(){
        if (document.getElementsByClassName(element)[0]){
          callBack(document.getElementsByClassName(element)[0]);
        } else {
            waitForElementByClassName(element, timeout, callBack);
        }
      }, timeout);
};

waitForElementByClassName("modal-body", 50, function(element) {
        element.innerHTML = "first line in my body text<br />second line in my body text<br /> ... <br />last line in my body text";
        });
于 2016-03-30T12:59:08.877 回答