【问题标题】:I want my json to be stored in a string variable in my controller我希望将我的 json 存储在控制器中的字符串变量中
【发布时间】:2014-10-16 14:48:25
【问题描述】:

我有一个从服务中获取的 JSON,我想使用该 json 存储在我的字符串变量中。 所以我的分页有效。

var app = angular.module('Techapp', ['ngTable']);

app.controller('ngTableCtrl', function ($scope, ngTableParams) {
    var data = [{ Technology: "Core JAVA", CourseType: "Training Plan", JobLevelPrefered: "JL 3+", ContactPerson: "Kavitha_arjun" },
                { Technology: "Core JAVA", CourseType: "Training Material", JobLevelPrefered: "JL 3+", ContactPerson: "Kavitha_arjun" },
                { Technology: "Core JAVA", CourseType: "Training Plan", JobLevelPrefered: "JL 3+", ContactPerson: "Shanthi_A" },
                { Technology: "Core JAVA", CourseType: "Training Material", JobLevelPrefered: "JL 3+", ContactPerson: "Kavitha_arjun" },
                { Technology: "Core JAVA", CourseType: "Training Material", JobLevelPrefered: "JL 3+", ContactPerson: "Muthumari_T" },
                { Technology: "Core JAVA", CourseType: "Checklists", JobLevelPrefered: "JL 3+", ContactPerson: "Kavitha_arjun" },
                { Technology: "Core JAVA", CourseType: "Training Plan", JobLevelPrefered: "JL 3+", ContactPerson: "Kavitha_arjun" },
                { Technology: "Core JAVA", CourseType: "Training Plan", JobLevelPrefered: "JL 3+", ContactPerson: "Kavitha_arjun" },
                { Technology: "Core JAVA", CourseType: "Training Material", JobLevelPrefered: "JL 3+", ContactPerson: "Vatsala_Agrawal" },
                { Technology: "Core JAVA", CourseType: "Training Plan", JobLevelPrefered: "JL 3+", ContactPerson: "Kavitha_arjun" },
                { Technology: "Core JAVA", CourseType: "Training Plan", JobLevelPrefered: "JL 3+", ContactPerson: "Kavitha_arjun" },
                { Technology: "Core JAVA", CourseType: "Training Material", JobLevelPrefered: "JL 3+", ContactPerson: "Selvam_K01" },
                { Technology: "Core JAVA", CourseType: "Checklists", JobLevelPrefered: "JL 3+", ContactPerson: "Kavitha_arjun" },
                { Technology: "Core JAVA", CourseType: "Training Plan", JobLevelPrefered: "JL 3+", ContactPerson: "Kavitha_arjun" }
               ];

    $scope.tableParams = new ngTableParams(
    {
        page: 1, // show first page
        count: 5 // count per page
    },  
    {
        total: data.length, // length of data
        getData: function($defer, params) {
            $defer.resolve(data.slice((params.page() - 1) * params.count(),  params.page() * params.count()));
        }
    });
});

app.controller('CertificationCtrl', function ($scope, ngTableParams, $http) {
    var url = "http://localhost:58402/Search.svc/abc/ListsJava/Certification";
    $http.get(url)
      .success(function (data) {
         var myjson = JSON.parse(data);
         $scope.Title = JSON.parse(myjson)
      });
    var data = [];
    $scope.tableParams = new ngTableParams(
    {
        page: 1, // show first page
        count: 5 // count per page
    }, 
    {
        total: data.length, // length of data
        getData: function ($defer, params) {
            $defer.resolve(data.slice((params.page() - 1) * params.count(), params.page() * params.count()));
        }
    });
});
就像在 ng-TableCtrl 中,json 在字符串变量中。所以我的分页工作正常。但是在我的 CertificationCtrl 中,因为我从服务中获取我的 json,所以我无法应用分页。请帮忙

谢谢

喜欢

【问题讨论】:

    标签: json angularjs pagination


    【解决方案1】:

    如果 http://localhost:58402/Search.svc/abc/ListsJava/Certification 已经在返回您的 JSON 数据,您就不能像这样在 success 回调中调用您的分页代码吗:

    app.controller('CertificationCtrl', function ($scope, ngTableParams, $http) {
      var url = "http://localhost:58402/Search.svc/abc/ListsJava/Certification";
      $http.get(url)
        .success(function (data) {
          $scope.tableParams = new ngTableParams(
             {
               page: 1, // show first page
               count: 5 // count per page
             }, 
             {
               total: data.length, // length of data
               getData: function ($defer, params) {
                 $defer.resolve(data.slice((params.page() - 1) * params.count(), params.page() * params.count()));
             }
        });
      });
    });
    

    更新

    请参阅jsfiddle 上的现场演示。不要担心 Javascript 部分的第 1 到 10 行;我用它来设置要发送到 jsfiddle echo 服务的测试数据。将第 11 行的 url 变量替换为您的 URL。

    另外,请注意我使用$http.post 进行演示,并且还删除了您所有的JSON.parse() 代码。

    【讨论】:

    • 您好,感谢您的回复,我已经尝试过了。但它没有给我结果。我不确定为什么。它也没有给出任何错误:S
    • 尝试将console.log(data) 添加到您的success 回调中,看看您会得到什么。我用myjson替换了$scope.tableParams中对data的所有引用;也许你不需要那个。
    • 现在它给我错误“对象不支持属性或方法'设置'”这可能是什么原因?
    • 您是否尝试将console.log(data) 添加到您的success 回调中?您在调试器控制台中得到了什么?
    • 如果不知道是哪一行导致了错误,我无法判断。尝试将myjson 替换为data
    猜你喜欢
    • 2022-12-06
    • 2017-01-31
    • 2019-12-08
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多