Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 为什么';在我的HTML页面中是否立即加载JSON数据?_Jquery_Json_Angularjs_Cordova_Onsen Ui - Fatal编程技术网

Jquery 为什么';在我的HTML页面中是否立即加载JSON数据?

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=?',

这是我的控制器,它将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=?',
        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; }); });