【发布时间】:2016-12-07 06:05:21
【问题描述】:
我正在开发一个使用 AngularJS 作为框架的移动应用程序,目前我的结构类似于:
app.config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/', {
templateUrl : 'pages/home.html',
controller : 'homeCtrl'
})
.when('/one', {
templateUrl : 'pages/one.html',
controller : 'oneCtrl'
})
.when('/two', {
templateUrl : 'pages/two.html',
controller : 'twoCtrl'
});
}]);
app.controller('homeCtrl', ['$scope', function($scope) {
}]);
app.controller('oneCtrl', ['$scope', function($scope) {
}]);
app.controller('twoCtrl', ['$scope', function($scope) {
}]);
然后我用ng-view 显示内容:
<div class="ng-view></div>
一切运行良好,但我需要从 JSON 文件加载数据以填充应用程序的所有内容。我想要的是只进行一次AJAX 调用,然后通过我所有不同的控制器传递数据。在我的第一次尝试中,我想创建一个内部带有$http.get() 的服务并将其包含在每个控制器中,但它不起作用,因为每次我注入和使用该服务时它都会发出不同的 ajax 请求。由于我是使用 angular 的新手,我想知道在不搞砸的情况下,实现这一目标的最佳方式或更“角度方式”是什么。
编辑:我正在添加服务的代码,这只是一个简单的$http.get请求:
app.service('Data', ['$http', function($http) {
this.get = function() {
$http.get('data.json')
.success(function(result) {
return result;
})
}
});
【问题讨论】:
-
示例代码中缺少您的服务,这将是在这里看到的最有用的内容。
-
@Didier 我建议您将代码文件拆分为不同的控制器,并使用服务来获取此数据。查看我的服务代码答案
标签: javascript angularjs ng-view