次のタイプの角度1サービスがあります。私はgetterとsetterメソッドを作成して、異なるコントローラから変数にアクセスしようとしています。 しかし、getメソッドの変数console.logには、定義されていません。角度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;
};
}());
: 第1および第2のコントローラは異なる見解を持っています。 は、私が持っている最初のコントローラでは:
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
はい、しかし、私は1つのコントローラから値を設定しようとしていて、別のコントローラの値を取得しようとしています。最初のコントローラでは 'history.setWeeklyMeetingId(meeting.id);'を使い、 'vm.WeeklyMeetingID = history.getWeeklyMeetingId(); \t \t \t \t console.log( 'id、vm.WeeklyMeetingIDを取得') - ここでは定義されていません。私はサービスを注入しました。 –
これは問題ありません。更新された回答をご覧ください。 –
私の質問はより多くのコードで更新されました。 –