【问题标题】:Angularjs/PHP: url parameter in $http.get() methodAngularjs/PHP:$http.get() 方法中的 url 参数
【发布时间】:2017-09-28 00:57:09
【问题描述】:

我在 Eclipse 上有一个简单的 Web 项目,其中包含三个主要文件:“controller.js”、“home.html”和“array.php”。

.php 文件应回显以 JSON 字符串编码的 php 数组:

<?php
    $arr = array(array(title => "hello", author => "me"), array(title => 
    "hello2", author => "me"));
    echo json_encode($arr);
?>

然后,“controller.js”中的控制器应该接收这个 JSON 字符串并将其存储到 JavaScript 数组中:

angular.module('app_controller')
    .controller('control', ['$scope', '$http', function($scope, $http) {
        this.read = function() {
            $http.get('array.php')
                .then(function (response) {
                $scope.js_array = response.data;   
            });
        };
        this.read();
}])

最后,我将访问“home.html”中的数组元素:

<div data-ng-controller="control as ctrl">
    <ul>
        <li data-ng-repeat="elem in js_array">
            <h2>title: {{ elem.title }}</h2>
        </li>
    </ul>
</div>

但是...它不起作用。 Chrome 控制台没有显示任何错误,但看起来我正在访问一个空数组并且我的标题没有出现。我很确定我正确地编码了 JSON,所以我认为我无法将控制器与 .php 文件连接起来。有什么建议吗?

【问题讨论】:

  • 试试这个&lt;li data-ng-repeat="elem in ctrl.js_array"&gt;
  • @Hadi 同样是同一件事.. OP 已经将js_array 绑定到$scope 所以应该没问题..
  • 你能把console.log(response.data)放在.then里面看看,服务器返回数据正确吗?
  • 谢谢,但没有任何改变。
  • @Lyil 你在控制台看到data了吗?

标签: javascript php angularjs arrays json


【解决方案1】:

演示

var myApp = angular.module('myApp',[]);

myApp.controller('control', ['$scope', '$http', function($scope, $http) {
  this.read = function() {
      this.js_array = [
       {
         "id": "id1",
         "title": "title1"
       },
       {
         "id": "id2",
         "title": "title2"       
       },
       {
         "id": "id3",
         "title": "title3"       
       }
      ];
  };
  this.read();
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<div ng-app="myApp" ng-controller="control as ctrl">
  <ul>
        <li data-ng-repeat="elem in ctrl.js_array">
            <h2>title: {{ elem.title }}</h2>
        </li>
    </ul>
</div>

【讨论】:

    【解决方案2】:

    感谢所有试图帮助我的人,最后我发现问题出在我的 GlassFish 服务器和 Quercus 上。切换到 Apache,现在一切正常!

    【讨论】:

      猜你喜欢
      • 2016-04-16
      • 2014-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多