-1

我的控制器从 spring 应用程序数据中获取数据,但它没有以形式显示。当我将常量放入数据时,它工作得非常好。

这是我在 JS 控制器中的代码

sampleApp.controller('searchCourseController', ['$scope', '$http',
        function($scope, $http,  $routeParams, ngTableParams ) {
         $scope.courses = {};            

        $scope.searchButton=function () {
            var actionUrl = 'searchCourse';

            var textToSearch = $("#txtTitle").val();
            if (textToSearch.length == 0) {
                alert("Please provide search criteria. Blank search is not allowed");
                /* $("#loader-overlay").fadeOut();
                $("#bg-loader").fadeOut(); */
                return;
            }

            $http.get(actionUrl+"?title="+escape(textToSearch))
            .success(
                function(data, status, headers, config) {
                    $scope.courses = data;
                    console.log($scope.courses);
                })
            .error(
                function(data, status, headers, config) {
                });
        };

        $scope.editCourseButton=function () {
            alert ("edit");
        };

    }]);

我用来显示数据的 html 如下

<table class="table">
                                <thead>
                                   <tr>
                                      <th>Course Name</th>
                                      <th>Status</th>
                                      <th class="hidden-xs">Publishing status</th>
                                      <th class="hidden-xs">Group Name</th>
                                      <th class="hidden-xs">Rating</th>
                                   </tr>
                                </thead>
                                 <tbody>
                                   <tr ng-repeat="course in $scope.courses">
                                      <td>{{course.name}}</td>
                                      <td>{{course.courseStatus}}</td>
                                      <td>{{course.coursePublishStatus}}</td>
                                      <td>{{course.courseGroupName}}</td>
                                      <td>{{course.courseRating}}</td>
                                   </tr>
                                </tbody>
                             </table>

由于具有固定数据的相同代码在数据表中显示而没有问题,这可能是什么问题。

谢谢,

4

3 回答 3

1

您不能在视图中指定 $scope,因为它没有定义:

<tr ng-repeat="course in $scope.courses">

变成

<tr ng-repeat="course in courses">
于 2014-06-06T17:06:51.753 回答
0

除了在 ng-repeat 中从 $scope.courses 中省略 $scope 之外,您可能还想在 $http.get 成功回调中使用 $scope.$apply() 来更新范围。这将在异步过程之后将视图更新为更新的 $scope.courses 绑定。

例子:

$http.get(actionUrl+"?title="+escape(textToSearch))
 .success(function(data, status, headers, config) {
                $scope.courses = data;

                $scope.$apply(); // used $scope.$apply() to update the scope.
                console.log($scope.courses);
            })
        .error(
            function(data, status, headers, config) {
            });
  });
于 2014-06-06T17:33:55.277 回答
0

在 ng-change 上调用搜索功能,如下所示

<input class="form-control" type="text" placeholder="Title" id="txtTitle" ng-change="search()" ng-model="txtToSearch">

解决了这个问题。但我仍在试图找出为什么它在搜索按钮上不起作用。更改搜索控制器,这是代码

function SearchCtrl($scope, $http, $location, CS) {
$scope.search = function() {  
    $scope.result = null;
    $http({method: 'GET', url: '/search?title=' + $scope.txtToSearch }).
        success(function(data, status, headers, config) {
            $scope.results = data;
        }).
        error(function(data, status, headers, config) {
            $scope.status = status;
        });     
};

$scope.edit=function(c)
{
    CourseService.set(course);
    $location.path('/edit');
}



}
于 2014-06-09T11:38:42.363 回答