בס"ד
אני מגדיר משתנה כ class שיצרתי, והבנתי שבגרסאות האחרונות (אולי רק האחרונה), vsCode לא מסתפק רק במה שnגדירים את המשתנה כך:
sessionActive: TSession;
אלא הוא רוצה שגם יאתחלו אותו, כמו.
sessionsList: TSession[] = [];
או
sessionsList: TSession[] | undefined;
בנוגע לזה העדפתי להשתמש באפשרות השניה, בגלל שבאחד מהם אני רוצה לעשות בסוג {} ולא [],
א. האם יש אפשרות לאתחל אותו בצורה כזאת({})?
ב. כשאני משתמש בו בhtml של קומפוננטה שאני מייבא את הSerive הזה, הוא כותב לי שגיאה.
הserivce
import { TSession } from '../../class/session';
@Injectable({
providedIn: 'root'
})
export class SessionsService {
sessionsList: TSession[] | undefined;
sessionActive: TSession | undefined;
constructor() {this.getSessionsListDemo() }
getSessionsListDemo(){
this.sessionActive = {
strSession: "sfganIshfunpuh493o892y49fymu43tr7nfg8fr2npeu45",
userId: 4,
userName: "XXX XXX",
email: "XXX@chazondov.org",
imgUrl: "http://localhost/img/user1.png",
startDate: 1,
lestDate: 1,
countEntrys: 1
}
this.sessionsList = [
{
strSession: "sfganIOצקכ/ויyuip49fymu43tr7nfg8fr2npeu45",
userId: 8,
userName: "XXXX",
email: "XXXX@gmail.com",
imgUrl: "http://localhost/img/user.jpg",
startDate: 1,
lestDate: 1,
countEntrys: 1
},
{
strSession: "sfganIshfunpuh493o892y49fymu43tr7nfg8fr2npeu45",
userId: 4,
userName: "XXX XXX",
email: "XXX@chazondov.org",
imgUrl: "http://localhost/img/user1.png",
startDate: 1,
lestDate: 1,
countEntrys: 1
},
{
strSession: "sfganIshfunpuh493o892y49fymu43tr7nfg8fr2npeu45",
userId: 2,
userName: "XXX XXX XXXX",
email: "XXXX@gmail.com",
imgUrl: "http://localhost/img/user2.jpg",
startDate: 1,
lestDate: 1,
countEntrys: 1
}
]
console.log(this.sessionsList)
}
}
בקומפוננטה ts
import { SessionsService } from '../../../sys/services/user/sessions.service';
constructor(public sessionsService: SessionsService) {}
בקומפוננטה בhtml
<span #TitleUsrName class="mx-1" [ngClass]="{'d-none':settings.smWidth === true}" [matMenuTriggerFor]="userMenu">{{sessionsService.sessionActive.userName}}</span>
<img [src]="sessionsService.sessionActive.imgUrl" class="rounded-circle" width="35" height="35" alt="">
זה עובד, אבל מראה לי שגיאה.
תודה רבה וסליחה על האריכות
מקווה שזה מספיק ברור ומספיק נתונים
השתדלתי כמה שיותר לתעד, כמו שמבקש @dovid