30/09/2018, 18:41

Thắc mắc : Tự trỏ đến DOM trong angular JS

Xin chào mọi người, mình có một câu hỏi mong mọi người giải đáp giúp là làm sao để tự trỏ đến 1 đối tượng DOM trong AngularJS, kiểu như this trong jQuery ấy. Chả là mình xây dựng một hộp chat có DOM thay đổi liên tục và mình có nhiều thẻ p(lời thoại ý), mình muốn click vào thẻ p nào thì chỉ xóa thẻ p ấy thôi.Mình đã thử 2 hướng sau đây:

  • Hướng 1: sử dụng sự kiện ng-click của angular nhưng phần hàm mình không biết tự trỏ thế nào nên đã thay phần thân bằng jQuery nhưng phải bắt sự kiện click nên phải click 2 lần mới xóa được
  • Hướng 2 : mình muốn phần xóa này sử dụng hoàn toàn jQuery nhưng DOM thay đổi liên tục vậy chả lẽ dùng jQuery ajax nhưng ko biết có đúng không và áp dụng kiểu gì
Võ Hoài Nam viết 20:43 ngày 30/09/2018

Bạn thử hướng này, dùng hoàn toàn jQuery, còn AngularJS để tối mình về coi lại… Tại trong AngularJS nó cũng có một bản jQuery rút gọn tên là jqLite. Cá nhân mình không hứng thú với jqLite cho lắm… Với lại trường hợp của bạn là HTML phát sinh sau JavaScript, nó hơi khó/bất tiện.

$('.chat-box').on('click', 'p', removeMessage);

function removeMessage() {
    // TODO
}
taka2412 viết 20:49 ngày 30/09/2018

okie.thanks bạn. để mình thử. mình có lấy api thg simsimi về làm cái chat tự động.phần lấy json mình làm bằng angular rồi nên muốn thử xem phần xóa tin nhắn làm bằng angular kiểu gì nhưng loay hoay mãi

Nguyen Ca viết 20:48 ngày 30/09/2018

Nếu là 1 danh sách thi repeat track by index để đánh dấu dòng đó. rồi xử lý sự kiện ng-click
Cón muốn get dom bằng angular thì dùng qlite: angular.element(domElement)")
Muốn trigger event thì là angular.element(domElement).triggerHandler(‘click’)

Bài liên quan
0