0
我試圖在兩個控制器之間創建一個共享資源在angularjs中。 我已經在第二個控制器中使用getData()來獲取存儲的數據,並在第二個控制器中填充數據表。爲了簡單起見,我省略了代碼中的數據表部分。兩個控制器之間的共享功能angularjs
以下是兩個控制器
(function(){
var app = angular.module('adminCtrls',[]);
// Main Controller
app.controller('mainCtrl', function($scope, $http,testSrv){
// Get the data form the phoenix database based on the query defined
// in db_size.php
$http.get('rest/admin/db_size.php').then(function(response){
$scope.answers = response.data;
$scope.me = "$scope.answer";
testSrv.setData($scope.me);
});
});
})
// Modal Controller
app.controller('modalCtrl', function($scope,$http,testSrv){
console.log(testSrv.getData());
});
});
})(); // EOF
我的控制器文件以下是我的角應用程序文件
(function(){
// Angular App
var app = angular.module('adminApp', ['ngRoute', 'adminCtrls', 'siteSrvs']);
// Routing
app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider){
// HTML5 Mode
$locationProvider.html5Mode({
enabled: true
});
}]);
})();
這是我的服務。
(function(){
// Phoenix Services
var phx = angular.module('siteSrvs',[]);
// Main
phx.service('testSrv', function($http){
// Data Storage
var data = '';
var answers = '';
// Returned Functions
return {
getData : _getData,
setData : _setData,
getAnswers : _getAnswers
}
// Get Data
function _getData(){
return data;
}
// Set Data
function _setData(t){
if(t) data = t;
}
function _getAnswers(){
return $http.get('/rest/test2/test2.php');
}
});
})(); // EOF
我想在我的第一個控制器中設置數據,並從我的第二個控制器獲取相同的數據。
我的第二個控制器無法看到第一個控制器存儲的數據。
我想知道我是否缺少任何模塊注入?
我想在第二個控制器中使用getData方法來獲取數據並填充第二個控制器中的數據表。我的問題是getData不顯示第一個控制器存儲的數據 –
爲了簡單起見,我註釋了對第一個控制器中的服務的調用。我建議你檢查setData是否被實際調用,因爲如果有任何錯誤不會被調用。您可以在該塊外調用setData來測試它,或者捕獲該調用的錯誤。 – elvin