角度演示应用

时间:2014-05-13 17:05:36

标签: angularjs

我一直在学习Angular并且遇到了一堵奇怪的墙。 。 。首先,我使用DEPLOYD和SERVER.JS运行角度演示,一切运行正常。我还运行了另一个在线点击RESTful Web服务,它运行正常。所以我采取了似乎是下一个逻辑步骤并创建自己的RESTful Web服务,并将其部署到TOMCAT就好了。我可以在我的浏览器中查询服务到localhost,它运行正常。到目前为止一切都很好。

所以,我构建了一个非常简单的Angular应用程序来点击该服务并且没有返回任何内容。好吧,我想我弄乱了些什么。 。 。所以我修改我的演示应用程序以命中DEPLOYD实例,它的工作原理。我修改了他现有的服务,它的工作原理。 。 。但当我将它指向我自己的RESTful服务时,没有任何回复。我不能再为此丢掉任何头发了。以下是一些细节:

在浏览器中测试后,我的服务正在返回:

    [{"person":{"id":1,"fullName":"Alpha","age":10}},{"person":{"id":2,"fullName":"Bravo","age":20}},{"person":{"id":3,"fullName":"Charlie","age":30}},{"person":{"id":4,"fullName":"Delta","age":40}},{"person":{"id":5,"fullName":"Echo","age":50}},{"person":{"id":6,"fullName":"Foxtrot","age":60}}]

一个非常简单的JSON数组,对吧?

这是我的HTML:

    <!doctype html>
    <html ng-app>
    <head>
        <title>Hello AngularJS</title>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8    /angular.min.js"></script>
        <script src="hello.js"></script>
        <link href="css/bootstrap.css" rel="stylesheet" />
        <link href="css/bootstrap-theme.css" rel="stylesheet" />
    </head>

    <body>
    <div ng-controller="Hello">
        <div class="well" ng-repeat="person in data.person">
            <h3>
                <strong>{{person.id}}</strong>
                <span class="pull-right label label-primary">
                    {{person.age}}
                </span>
            </h3>
        </div>
    </div>
    </body>
    </html>

这是我的控制器javascript:

    function Hello($scope, $http) {

        $scope.data = {};
        $http.get("http://localhost:8085/TestWS/service/getAllPersonsInJSON").
            success(function(data) {
                $scope.data.person = data;
            });
        @scope.data.person();
    }
我认为,我把它简化为必需品。 。 。但没有快乐获取数据显示。有人帮我避免做一个更大的秃斑吗?

TIA,      泰德

3 个答案:

答案 0 :(得分:0)

删除此行,因为它不是真正有效的Angular代码和person不是函数。

@scope.data.person();

其他一切看起来都很棒。

答案 1 :(得分:0)

我能够在我的机器上运行它。

问题看起来像是将数据嵌套到额外的步骤。 您收到的数据是一个json数组,为了显示这个,我将其直接分配给了人。 对控制器进行了以下更改: 删除了$ scope.data = {};

所以控制器有以下3行。

 $http.get("url").
        success(function(data) {
            $scope.person = data;
        });

然后访问HTML文件中的数据:

<div ng-controller="Hello">
    <div class="well" ng-repeat="person in person">
            <h3>
              person is 
                <strong>{{person.person.id}}</strong>
                <span class="pull-right label label-primary">
                    {{person.person.age}}
                </span>
            </h3>
        </div>
     </div>

希望它会有所帮助。 干杯

答案 2 :(得分:0)

试试这个:

 $scope.data.person = data.data;

这是因为,$ http.Get(function(data){},..)将在数据变量中返回http响应包。为了访问http响应数据包中的数据,您必须访问data.data对象。

编辑: 如果上面的解决方法不起作用,请在成功回调中使用console.log(data),并查看浏览器的控制台,以检查成功回调函数实际传递的数据。

希望这有帮助。