无法在 ngDialog 中显示响应数据

Not able to display response data in ngDialog

我是 ngDialog 的新手,我正在尝试将从我的服务接收到的响应数据显示到 ngDialog 中,我的弹出窗口即将出现,我能够显示静态数据但是当我传递数据时:$scope.myData,动态值只是不填充,请指导我哪里出错了...... 下面是代码。

popup.html:

<div>hi how r u</div>
<div>I am fine thank u</div>

控制器代码:

paymentSearchApp.controller('paymentSearchCtrl', function (getXmlService,paymentSearchService,paymentSearchResponse,paymentDetailService,auditHistoryService,errorLogService,accountingEntryService, notesService,$scope, $q, ngDialog) {
getXmlService.getXmlDatafunction().then(
  function(response){
    $scope.xmldata = response;
    console.log($scope.xmldata);
    ngDialog.open({
         template: 'showXml.html',
         className: 'ngdialog-theme-default',
         data: $scope.xmldata
        });
    }, function(error){}
)
});

您需要使用控制器,将数据传递给视图,因为我在这里注意到您还没有使用控制器,让我向您展示,

getXmlService.getXmlDatafunction().then(
  function(response){
    $scope.xmldata = response;
    console.log($scope.xmldata);
    ngDialog.open({
         template: 'showXml.html',
         className: 'ngdialog-theme-default',
         controller: ['$scope', function($scope) { 
                 $scope.data = $scope.xmldata
                 // Controller logic here
         }]
        });
    }, function(error){}
)

此外,这是来自 Whosebug 的答案之一的另一个演示:Demo

告诉我。

你很接近!

您确实可以对传递给 ngDialog.open 的对象使用 data 键,以便在对话框范围内注入数据。
但是,数据对象并没有直接覆盖作用域可能已经存在的属性:它在 $scope.ngDialogData.

中可用

例如,考虑以下代码:

ngDialog.open({
  template: 'dialogTemplate',
  data: {
    ip: res.data.origin
  }
});

您将在对话框模板中找到 ip 信息,参考:{{ngDialogData.ip}}

为了便于说明,请查看以下代码段:

var myApp = angular.module('myApp', ['ngDialog']);

myApp.factory('PaymentSearchSvc', ['$http', function($http) {
  return {
    getXmlDataFunction: $http.get.bind($http, 'https://httpbin.org/ip')
  };
}]);

myApp.controller('PaymentSearchCtrl', ['$scope', 'ngDialog', 'PaymentSearchSvc', function($scope, ngDialog, paymentSearchSvc) {
  $scope.process = function() {
    paymentSearchSvc.getXmlDataFunction().then(function(response) {
      ngDialog.open({
        template: 'dialogTemplate',
        data: {
          ip: response.data.origin
        }
      });
    });
  };
}]);
.text-primary {
  color: steelblue;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ng-dialog/0.6.4/js/ngDialog.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ng-dialog/0.6.4/css/ngDialog-theme-default.min.css">

<div ng-app="myApp">
  <div ng-controller="PaymentSearchCtrl">
    <button ng-click="process()">What's my IP?</button>
  </div>

  <script type="text/ng-template" id="dialogTemplate">
    <h1>Dialog content</h1>
    <p>
      Your IP address is: <span class="text-primary">{{::ngDialogData.ip}}</span>
    </p>
  </script>
</div>