khanhdoan09 / Lap_Trinh_Frontend_Nhom31

Other
0 stars 0 forks source link

Tìm hiểu angular #17

Open minhchanh19130021 opened 2 years ago

minhchanh19130021 commented 2 years ago

Xem thêm này nữa nhaaaaa Cách sử dụng localstorage https://viblo.asia/p/cach-su-dung-localstorage-de-luu-tru-du-lieu-trong-trinh-duyet-1VgZv86O5Aw

minhchanh19130021 commented 2 years ago

Tài liệu tham khảo về websockets

  1. https://tutorialedge.net/typescript/angular/angular-websockets-tutorial/
  2. https://indepth.dev/tutorials/angular/how-to-implement-websockets-in-angular-project
khanhdoan09 commented 2 years ago

Tìm hiểu về Dependency Injection

Ví dụ (code ở chats-sidebar.service.ts và chats.component.ts):

  constructor(public chatSidebarService: ChatsSidebarService) {
    this.chatSidebarService.runService()
  }

thì object _chatSidebarService được khởi tạo ra sao ??? là do nhờ vào:

@Injectable({
  providedIn: 'root'
})

tham khảo: https://github.com/angular-vietnam/100-days-of-angular/blob/master/Day015-introduction-dependency-injection-in-angular.md

khanhdoan09 commented 2 years ago

Sử dụng firebase storage để upload ảnh

  ref: AngularFireStorageReference;
  task: AngularFireUploadTask;
  uploadState: Observable<any>;
  constructor(private afStorage: AngularFireStorage) { }
  upload(event) {
    const id = Math.random().toString(36).substring(2);
    this.ref = this.afStorage.ref(id);
    this.task = this.ref.put(event.target.files[0]);
    this.uploadState = this.task.snapshotChanges().pipe(map(s => s.state));
    this.stateUploadState.subscribe((state)=>{
        if (state === 'success') {
            alert('done')
        }
      })
  }

tham khảo: https://medium.com/codingthesmartway-com-blog/firebase-cloud-storage-with-angular-394566fd529

khanhdoan09 commented 2 years ago

Route to 404 page

{ path: '**', pathMatch: 'full', component: PagenotfoundComponent }

Giải thích:

khanhdoan09 commented 2 years ago

Angular Guard

kiểm tra đăng nhập thành công rồi mới được vào trang home https://angular.io/api/router/CanActivate#description code ở filter-authentication.guard.ts và app-routing.module.ts

khanhdoan09 commented 2 years ago

Sign in with cookie

Lưu cookie vào browser: document.cookie = 'username=${encryptedUsername}; secure; max-age=321408000'; Giải thích:

  1. username=${encryptedUsername} là một key=value
  2. secure là cookie chỉ dùng trong giao thức https
  3. max-age=321408000 là thời gian cookie này còn hiệu lực

Xóa cookie khỏi browser: document.cookie = 'username=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; Giải thích:

  1. username= là để key username không có value
  2. expires=Thu, 01 Jan 1970 00:00:01 GMT là để cookie này đã hết hạn nên browser sẽ xóa nó

`