我想共享控制器和函數之間的變量。但我得到一個錯誤從控制器,這樣說:Angular:無法使用服務訪問控制器中的變量
TypeError: Cannot read property 'getSet' of undefined
我已經經歷了許多教程了,但不知道我該怎麼錯在何處。 我的服務代碼是這樣的:
app.service('shareData', function() {
var selected = ["plz", "print", "something"];
var putSet = function(set) {
selected = set;
};
var getSet = function() {
return selected;
};
return {
putSet: putSet,
getSet: getSet
};
});
我能夠從我這樣定義功能達到selected
:
setDisplay = function($scope, $mdDialog, shareData) {
console.log(shareData.getSet()); // this is working
$scope.selected = shareData.getSet();
$scope.hide = function() {
$mdDialog.hide();
};
$scope.cancel = function() {
$mdDialog.cancel();
};
$scope.answer = function(answer) {
$mdDialog.hide(answer);
};
};
我的控制器是這樣的:
app.controller('topicController', ['$scope', '$http', '$mdDialog', 'shareData',
function ($scope, $http, $mdDialog, $mdToast, shareData) {
console.log(shareData.getSet()); // NOT WORKING
}]);
非常感謝!你節省了我寶貴的時間!但我沒有得到確切的原因,爲什麼我無法訪問它,並刪除$ mdToast做了神奇 –
@jAYANTYADAV我更新了我的答案,詳細解釋..我認爲它會幫助你。謝謝:) –
再次感謝!順便說一句,什麼是DI陣列?我的意思是完整形式。 –