我有以下類型的角度1服務。我試圖創建getter和setter方法來訪問來自不同控制器的變量。 但是,當我console.log get方法中的變量,它是未定義的。如何在角度1服務中設置和獲取屬性
該服務是與該項目一起繼承的。我怎樣才能以這種方式創建這些方法?謝謝。
;(function(){
angular.module("MeetingApp")
.factory('history', history);
history.$inject = [ '$http' ];
function history($http){
var historyService = {
//other methods
createHistory: createHistory
\t setWeeklyMeetingId: setWeeklyMeetingId,
\t \t \t getWeeklyMeetingId: getWeeklyMeetingId
}
function setWeeklyMeetingId(id) {
\t \t \t this.weeklyMeetingId = id;
\t \t }
\t \t function getWeeklyMeetingId() {
\t
\t \t \t return this.weeklyMeetingId;
\t \t }
return historyService;
};
}());
更新: 第一和第二控制器有不同的看法。 在第一控制器我有:
history.generateNewWeeklyMeeting(projectOrproduct)
\t \t \t \t .then(meeting => {
\t \t \t \t \t history.setWeeklyMeetingId(meeting.id);
\t \t \t \t \t \t console.log('id',history.getWeeklyMeetingId()); //here I get the id
\t \t \t \t \t return meeting;
\t \t \t \t })
\t \t \t \t .then(meeting => {
\t \t \t \t \t location.href = siteURL + "/new-team-meeting";
\t \t \t \t });
在第二控制器:
vm.WeeklyMeetingID = history.getWeeklyMeetingId();
console.log('get the id', history.getWeeklyMeetingId()) //Here it is undefined
是的,但我想設置一個控制器的值,並在另一個控制器中獲取值。在第一個控制器中,我使用:'history.setWeeklyMeetingId(meeting.id);'和第二個 - 'vm.WeeklyMeetingID = history.getWeeklyMeetingId(); \t \t \t \t console.log('get the id',vm.WeeklyMeetingID)' - 這裏是未定義的。我已經注入了服務。 –
沒問題。看到更新的答案。 –
我用更多的代碼更新了我的問題。 –