Jquery 为什么';在我的HTML页面中是否立即加载JSON数据?
这是我的控制器,它将JSON数据传送到Wordpress:Jquery 为什么';在我的HTML页面中是否立即加载JSON数据?,jquery,json,angularjs,cordova,onsen-ui,Jquery,Json,Angularjs,Cordova,Onsen Ui,这是我的控制器,它将JSON数据传送到Wordpress: app.controller('AboutController', function($scope, $http) { $scope.device=device; var page_id = 2; $.ajax({ url: 'http://davidemilone.com/provawp/?json=get_page&page_id='+page_id+'&callback=?',
app.controller('AboutController', function($scope, $http) {
$scope.device=device;
var page_id = 2;
$.ajax({
url: 'http://davidemilone.com/provawp/?json=get_page&page_id='+page_id+'&callback=?',
dataType: 'jsonp',
type: 'GET',
success: function(data) {
$scope.page=data.page;
console.log("contenuto" + $scope.page.content);
}
});
});
现在,这是我的HTML页面:
<ons-page ng-controller="AboutController" >
<ons-toolbar modifier="opacity">
<div class="left">
<ons-toolbar-button ng-click="menu.toggle()"><ons-icon icon="ion-navicon-round" fixed-width="false"></ons-icon></ons-toolbar-button>
</div>
<div class="center">{{page.title}}</div>
</ons-toolbar>
<div class="app-page-content">
<p class="page-content" ng-bind-html="page.content"></p>
</div>
{{page.title}}
为什么数据不会立即加载,只有在单击“上一步”或旋转木马自动滑动时才会加载;我做错了什么 您没有使用Angular自己的工具(例如
$http
服务)与服务器通信,因此框架不知道数据已更改
要让Angular知道$scope
上的某些内容已以非角度方式更改,您应该运行$scope.$apply()代码>分配新数据后
(为了解释“单击外部”部分:它只会触发摘要循环-与$apply()
的结果相同,这就是当时值更新的原因)
不过最好使用$http服务。我可以看出您已经将它注入到控制器中,因此使用jQuery的ajax函数替代它可能是一个简单的错误。(详情请参阅)
如何以jquery的相同方式获得带有angular的单个页面?@Pinstack I使用代码示例更新了答案。您可以console.log
返回响应,以确定它的确切格式(我不确定在本例中,response.data
中是否保留了响应正文;)但是使用$scope.$apply()它工作得很好;非常感谢您的支持;我将等待$http请求单页的回答。结果是此未捕获的SyntaxError:Unexpected tokenapp.controller('AboutController', function($scope, $http) {
$scope.device=device;
var page_id = 2;
var url = 'http://davidemilone.com/provawp/?json=get_page&page_id='+page_id+'&callback=?';
$http.jsonp(url).then(function(response) {
console.log(response.data);
$scope.page = response.data.page;
});
});