我是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){}
)
});
答案 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}}
。
例如,请查看以下代码段:
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;