伙计们,我是 Angularjs 的新手,这是我的新单页应用程序的一些代码。但我认为我做得不对。这是我的上帝:
var TownApp=angular.module('TownApp',['ngRoute','ngResource']);
TownApp.service('Town', function($http) {
this.all = function() {
return $http.get('/database.json').then(function(response){
return response.data;
})
};
});
var HomeCtrl = TownApp.controller('HomeCtrl',function($scope,Town){
$scope.towns = Town.all();
});
var TownCtrl = TownApp.controller('TownCtrl',function($scope, $routeParams, Town){
console.log(Town.all().length)
$scope.towns = Town.all();
console.log($scope.towns.length)
//........
})
TownApp.config(['$routeProvider', function($routes) {
$routes.when('/',{
templateUrl : 'welcome.html',
controller : 'HomeCtrl'
}).when('/town/:townId',{
templateUrl : 'town.html',
controller : 'TownCtrl'
}).otherwise({
redirectTo : '/'
});
}]);
所以,问题是您可以在 Town 控制器中看到这两个控制台日志,它们都返回“未定义”。这样我就无法迭代或从中获取值Town.all()
。但它在 HomeController 上运行完美。
我对服务和工厂都很熟悉。我认为我只是以错误的方式做事?谢谢你的帮助!