我正在研究Angular 1.6.9
。我使用jsonp
方法来获取我的回复。我的回答是回调功能。我在.success()
中使用angular 1.4.9
函数,我能够成功解析我的Jsonp回调响应。在这里,我附上了我的工作小提琴。
http://jsfiddle.net/sathees552/m7hh3362/
我正在使用angular 1.6.9
,但由于.success()
方法已被弃用,我使用的是.then()
函数,以及$sce.trustAsResourceUrl(url)
。但我无法解析我的回复。它给出了以下错误
未捕获的ReferenceError:未定义projectInstance
我已经在我的控制器中定义了projectInstance
,但仍然无法识别。但我在angular 1.4.9
中使用的方法工作得很好。在这里,我附上了我的plunker链接,这是无效的
https://plnkr.co/edit/TidicooyborGTGHvUzJK?p=preview
我的Html代码:
<div ng-app="myapp" ng-controller="personCtrl">
<button ng-click="doRequest()">Make JSONP request</button>
</div>
我的js代码:
var app = angular.module('myapp', []);
app.config(function($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist([
'self',
'http://www.mocky.io/v2/**'
]);
});
app.controller('personCtrl', ['$http', '$scope', '$sce', function($http, $scope, $sce) {
$scope.doRequest = function() {
//creating
var projectInstance = {
jsonpCallback: function(commandName, responseData) {
alert(responseData.projectSnapShot[0].projectId);
}
}
var url = "https://www.mocky.io/v2/5ac61eed4a000061007e065b";
var trustedUrl = $sce.trustAsResourceUrl(url);
$http.jsonp(trustedUrl, {
jsonpCallbackParam: 'jsonpCallback'
}).then(function(data) {
eval(data)
}, function(error) {
console.log(error);
return error;
})
};
}]);
我的回复:
projectInstance.jsonpCallback("getActiveProduct",{"totalRecords":null,"projectSnapShot":[{"projectId":"333333","projectNumber":"123456","projectStatus":"Active"}]})