无法在ngDialog中显示响应数据

时间:2016-11-02 04:17:52

标签: javascript angularjs ng-dialog

我是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){}
)
});

2 个答案:

答案 0 :(得分:0)

你需要使用控制器,传递数据进行查看,因为我在这里注意到你还没有使用控制器,让我告诉你,

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){}
)

另外,这是来自stackoverflow的答案之一的另一个演示:Template literals

让我知道。

答案 1 :(得分:0)

你非常接近!

您确实可以将data密钥用于传递给ngDialog.open的对象,以便在对话框中注入数据&#39;范围。
但是,数据对象不会直接覆盖范围内可能已存在的属性:$scope.ngDialogData中提供了该属性。

例如,考虑以下代码:

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

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

例如,请查看以下代码段:

&#13;
&#13;
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
        }
      });
    });
  };
}]);
&#13;
.text-primary {
  color: steelblue;
}
&#13;
<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>
&#13;
&#13;
&#13;