为什么在AngularJS视图中显示Nothing数据记录

时间:2015-07-19 17:55:37

标签: angularjs

我正在尝试从角度js向php发出ajax请求。 我没有错误,并且在视图中显示无数据记录

从服务器检索数据但不在recordsCtrl函数init()中搜索。

我的来源:

查看:jalse.html:

(function() {
    'use strict';
    var recordsCtrl = function($scope, $routeParams , jasleFactory) {
        var jalseId = $routeParams.jalseId;

        jasleFactory.getJalse().success(function(data, status, headers, config) {
            $scope.records = data;
        }).
        error(function(error, status, headers, config) {
            console.log("error occured " + error)
        });
        $scope.jalse = null;

        function init() {
            for (var i = 0, len = $scope.records.length; i < len; i++) {
                if ($scope.records[i].contentID == parseInt(jalseId)) {
                    $scope.jalse = $scope.records[i];
                    break;
                }
            }
        }   
    };
       recordsCtrl.$inject = ['$scope','$routeParams', 'jasleFactory'];
       angular.module('myApp').controller('recordsCtrl', recordsCtrl);
}());

控制器:   recordsCtrl.js:

(function () {

    var jasleFactory = function ($http) {

        var factory = {};

        factory.getJalse = function () {
            return $http({method: 'GET', url: 'includes/records.php'});
        };
        return factory;
    };

    jasleFactory.$inject = ['$http'];
    angular.module('myApp').factory('jasleFactory', jasleFactory);

}());

工厂:     jalseFactory.js:

 (function () {
var app = angular.module('myApp', ['ngRoute']);

app.config(function ($routeProvider) {
    $routeProvider

            .when('/', {
                controller: 'contentsCtrl',
                templateUrl: 'views/contents.php'
            })

            .when('/jalse/:jalseId', {
                controller: 'recordsCtrl',
                templateUrl: 'views/jalse.php'
            })

            .otherwise({redirectTo: '/'});
});

}());

文件app.js:

String

1 个答案:

答案 0 :(得分:0)

有几个问题。

ng-init="init()"无效,因为init函数未分配给范围变量,例如$scope.init=init;,因此在视图中未定义

即使已分配,它也会在数据从服务器返回之前运行。因此$scope.recordsinit()未定义。

您可以删除ng-init="init()"并在成功回调中调用init()

jasleFactory.getJalse().success(function(data, status, headers, config) {
    $scope.records = data;
    init();
}).