如何从控制器AngularJS发送数据

时间:2015-08-06 16:32:41

标签: angularjs

我想将数据从api发送到我的视图......所以我需要从get reqest获取数据,然后将该数据发送到我页面上的视图。

这是我的控制器:

 angular.module('commentsApp',['notifications'])
           .config(function($routeProvider,$locationProvider) {
                $routeProvider.
                        when('/project/:id', {
                            controller: 'CommentsCtrl',
                            template: '<%comments%>'
                        }).
                        otherwise({
                            template: 'aaaaaaa',
                            redirectTo: '/'

                        });               

            })

          .controller('CommentsCtrl',function($scope,$http,$routeParams){
              $scope.comments = [];
              $scope.param = $routeParams.id;
              $http.get("/api/comments/"+ $scope.param)
              .success(function(data){
                   $scope.comments = data;       
              })
              .error(function(data){
                  console.log(data);
              });
          });

这是我的HTML:

<div id="comment" ng-app="commentsApp" class="panel-body">
                                <div ng-view>
                                    <h1><% ng %></h1> 
                                </div>


                            </div>

1 个答案:

答案 0 :(得分:0)

您应该在ng-app标记中声明<html>。我不确定<% ng %>是什么,也不知道模板中的<% comments %>,但这不是角度将数据渲染到视图的方式。由于comments是一个数组,因此您需要使用ng-repeat来显示数据。

类似(在你的模板中)

<ul>
  <li ng-repeat="comment in comments">
    {{comment}}
  </li>
</ul>

{{comment}}是角度渲染变量的方式,类似于erb&#39; s <%= comment %>。 Comment是<li>生成的每个ng-repeat的局部变量,它从$ scope变量comments获取数据。

编辑:分配$scope.$apply();后,您可能需要{Comment = {1}}中的$scope.comments = data。在这一点上不确定,我还没有完全消化周期。