Đúng.
Đó là cách làm việc góc cạnh.
Vào thời xa xưa (ngay sau khi tất cả các con khủng long đã chết và một chút trước khi những chiếc smartwatch trở thành The Next Big Thing), JavaScript không phô trương được coi là Điều đúng đắn. JavaScript không phô trương sẽ đi chơi với anh em họ của cô ấy, Tăng cường tiến bộ và hai người họ được coi là ánh sáng cho thế giới và ngọn hải đăng của lòng tốt.
Có một lý do cho điều đó. Rất nhiều người dùng đã sử dụng các trình duyệt có công cụ JavaScript kém hoặc có lẽ không có công cụ JavaScript. Hoặc họ đã tắt JavaScript. Chúng tôi đã nói rằng web chủ yếu để chuyển siêu văn bản và chúng tôi không nên làm cho một số trang web của chúng tôi không thể sử dụng được bằng cách buộc JavaScript sử dụng chúng.
Với cùng một mã thông báo, việc loại bỏ JavaScript khỏi HTML là điều hợp lý. HTML nên được giữ nguyên, nó đã được nghĩ, bởi vì JavaScript là thứ bạn đã thêm vào sau đó - nếu người dùng cho phép nó. Nếu không, ít nhất là đánh dấu HTML đã phản ánh ngữ nghĩa của những gì bạn đang cố gắng truyền đạt.
Đó không phải là triết lý của AngularJS hay hầu hết các hướng dẫn phát triển web hiện đại bởi vì mọi thứ đã thay đổi. Khi chúng tôi sử dụng AngularJS hoặc các khung tương tự, chúng tôi sẽ sử dụng web để phân phối các ứng dụng , không chỉ văn bản và hình ảnh. Các ứng dụng web là vô dụng nếu không có JavaScript và không có lý do gì để giả vờ khác. Vì vậy, chúng tôi đã loại bỏ xiềng xích của Tăng cường tiến bộ bởi vì (a) chúng tôi có thể tin tưởng một cách an toàn vào tất cả người dùng đã bật JavaScript và (b) nó làm chúng tôi chậm lại.
Một khi chúng ta không thực hiện Tăng cường tiến bộ, tại sao JavaScript không phô trương? Tách biệt mối quan tâm là một khái niệm tuyệt vời. Nhưng đó là sáu trong số một hoặc một nửa tá thứ khác: bạn có HTML được câu đố với các tham chiếu đến JavaScript hoặc bạn có JavaScript đánh đố với các tham chiếu đến HTML (theo cách của jQuery).
Nếu bạn sử dụng AngularJS, bạn sẽ sớm thấy sự phân tách rõ ràng hơn các mối quan tâm trong mã của mình so với các kiểu phát triển web khác. Chắc chắn, có các tham chiếu đến các hàm JS trong HTML của bạn. Nhưng bạn có thể dễ dàng di chuyển xung quanh HTML mà không phải lo lắng về việc phá mã và JS của bạn sạch sẽ, có thể kiểm tra và không phụ thuộc vào một DOM rất cụ thể. Điều này cho phép bạn sử dụng lại logic kinh doanh tốt hơn và sử dụng lại HTML tốt hơn.
Điểm mấu chốt: đừng căng thẳng về nó. Bạn sẽ quen với nó đủ nhanh. Và đừng chống lại mọi thứ chỉ vì bạn luôn được nói rằng cách khác là Con đường đúng.
Phụ Lục
Nếu bạn cảm thấy điều quan trọng là cho HTML của bạn để phù hợp với tiêu chuẩn, bạn có thể sử dụng data-
tiền tố trên chỉ thị góc của bạn: ví dụ, data-ng-click=
và data-ng-repeat=
và HTML của bạn sẽ được W3C tuân thủ. Cá nhân tôi không bao giờ lo lắng về nó, nhưng làm nó là vô hại.