无法在 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>
我是 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>