我正在尝试从角度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
答案 0 :(得分:0)
有几个问题。
ng-init="init()"
无效,因为init函数未分配给范围变量,例如$scope.init=init;
,因此在视图中未定义
即使已分配,它也会在数据从服务器返回之前运行。因此$scope.records
中init()
未定义。
您可以删除ng-init="init()"
并在成功回调中调用init()
jasleFactory.getJalse().success(function(data, status, headers, config) {
$scope.records = data;
init();
}).