Отображение необработанного XML в mdDialog

Я пытаюсь отобразить некоторый XML как есть в $mdDialog, используя Angular Material. Если я покажу его с помощью стандартного предупреждения, я увижу XML, как и ожидал, но $mdDialog или Angular удалят из него все теги.

Вот код. Ни одна из закомментированных строк не имеет значения для XML.

             function displayFile(data, fieldName) {
                   var content = eval("data." + fieldName);
                   alert(content);

                   if (content) {
                       //content = $sanitize(content);
                       //content = $sanitize("<code>" + content + "</code>");
                   } else {
                       content = fieldName + " does not contain any content.";
                   };
                   var myAlert = $mdDialog.alert({
                       title: data.FILE_NAME,
                       content: content,
                       ok: 'Close'
                   });
                   $mdDialog
                       .show(myAlert)
                       .finally(function () {
                           myAlert = undefined;
                       });
               };

Любые идеи?


person Mike Feltman    schedule 20.10.2015    source источник


Ответы (1)


Размещение собственного решения публикации в группе google (чтобы оно оставалось как ссылка для всех):

angular.module('myApp', ['ngMaterial'])
  .controller('mdDialogController', mdDialogController)

mdDialogController.$inject = ["$mdDialog"]

function mdDialogController($mdDialog) {
    vm = this;
    vm.show = function() {
      var xml = "\
          <header> \
              <detail>\
                  <item>item1</item>\
                  <item>item2</item>\
              </detail> \
           </header>"

      var myAlert = $mdDialog.alert({
        title: "Show me the XML",
        content: xml,
        ok: 'Close'
      });
      $mdDialog
        .show(myAlert)
        .finally(function() {
          myAlert = undefined;
        });
    };
};    
<html xmlns="http://www.w3.org/1999/xhtml" ng-app="myApp">
<head>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/angular-material/0.11.4/angular-material.min.css" />
  <title>mdDialog test</title>
</head>
<body>  
<div ng-controller="mdDialogController as dialog">
     <md-button ng-click="dialog.show()">
       Show Dialog
      </md-buton>
  </div> 
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-animate.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-aria.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-resource.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular-sanitize.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angular_material/0.11.4/angular-material.min.js"></script>
  </body>

person Ani Menon    schedule 24.04.2016
comment
На самом деле я пытался отобразить XML как XML. Я пытаюсь отобразить входящий документ как есть. С тех пор мы перешли на JSON, и я смог довольно легко обрабатывать отображение необработанного JSON с помощью тега pre. - person Mike Feltman; 24.04.2016