Tìm hiểu về custom directive trong angularjs

Chào các bạn, nội dung bài viết này mình sẽ trình bày về directive sầu - một có mang thân quen vào AngularJS.

Bạn đang xem: Tìm hiểu về custom directive trong angularjs

Angular Directive là gì?

Directive là 1 trong những khái niệm trong Angular Framework, nó là mọi yếu tắc mở rộng cho những thẻ html cần sử dụng hỗ trợ các ở trong tính cải thiện cho các thẻ html.

Với directive sầu, Angular compiler sẽ render ra html mà lại trình chăm nom hiểu được nhờ vào attribute html, tự bình luận hay xuất phát điểm từ 1 tag bất kỳ như thế nào được đặt trên trang ...

Ví dụ họ có một thẻ tag ảo:

error-message>error-message>Trình coi sóc quan yếu hiểu thẻ error-message này, tuy thế khi vận dụng chạy, trình biên dịch (AngularJS $compiler) đã dựa trên hướng dẫn của directive để convert thẻ tag ảo này thành thẻ nhưng trình coi ngó có thể gọi được.

Đó là 1 trong trong số những cách mà lại directive sầu thao tác làm việc. Bài viết này chúng ta thuộc tìm hiểu xem directive là gì, nó hoạt động ra làm sao, bí quyết sử dụng directive sầu với những các loại directive sầu nhé.

Xem thêm: Including But Not Limited To Là Gì ? Discussion: Including, But Not Limited To

var app = angular.module("myApp", <>);phầm mềm.directive("errorNotice", function() return restrict : "E", template : "Has erorrs

" ;);

Cú pháp knhị báo: angular.module("myApp", <>).directive(...)Tên directive sầu tuân thủ theo đúng nguyên tắc camelCase, sống html thẻ "error-notice" thì thương hiệu directive đề xuất knhì báo là "errorNotice".

restrict: "E"Knhị báo nhiều loại directive thông qua cú pháp restrict, E là viết tắt của Element.

Angular vẫn render directive sầu nàgiống hệt như sau:

*

Các loại directive

Angular directive bao gồm bao gồm 5 loại:

Directive E (element)Directive A (attribute)Directive sầu C (class)Directive sầu M (comment)Directive sầu render qua file html

Directive E tôi đã trình diễn qua ví dụ vừa rồi, tiếp theo hãy coi những ví dụ của các directive sầu sót lại nhằm tò mò xem nó không giống gì cùng với directive E nhé:

Directive A (attribute)

Nhỏng chúng ta biết thì hầu hết thẻ html gần như có thể gồm attribute truyền vào nhằm hỗ trợ thêm nhiều thông báo rộng cho 1 element, dạng attribute="value"

Như từ bỏ viết tắt của directive, angularJS vẫn thông qua attribute vào một thẻ html để nhận biết một directive.

Xem thêm: Rom Flashing - Install Android 5

Ví dụ:

div error-attribute>div>directive-a-example.js

var app = angular.module("myApp", <>); app.directive("errorAttribute", function() return restrict : "A", template : "Has erorrs

" ;);

AngularJS compile đang render directive nàgiống như sau:

*

Directive C (class)

Với directive này, Angular sẽ dựa trên class nhằm dấn biêt một directive sầu.

div class="has-error">div>var tiện ích = angular.module("myApp", <>); tiện ích.directive("hasError", function() return restrict : "C", template : "error-notice">Something Error!" ;);

Directive sầu M (comment)

Code thường sẽ có comment nhằm fan viết có thể ghi chú/ lý giải về code ...Trong html thì comment có dạng sau:

!–– đoạn bình luận ––>Các đoạn phản hồi này các bạn cần inspect code lên giúp xem. AngularJS hỗ trợ chúng ta knhị báo directive trong bình luận, sau đấy là ví dụ:

var ứng dụng = angular.module("myApp", <>); phầm mềm.directive("commentDirective", function() return restrict : "M", replace : true, template : "Directive sầu comment type!" ;);Và AngularJS đã render nó nhỏng sau, bọn họ không thấy luôn đoạn bình luận mà chỉ thấy nội dung bên trong của directive:

div class="my-user-list"> h1>titleh1> div ng-repeat="user in users"> p>span ng-bind="user.name">span>, span ng-bind="user.age">span> tuổip> div>div>users-controller.js

var app = angular.module("myApp", <>); var ctrl = tiện ích.controller("usersController", function($scope) var vm = this; vm.users = < name: "Quyen", age: "22", name: "Hoai", age: "19", name: "Tham", age: "18" >;);với cuối cùng knhì báo directive, file users-list-directive sầu.js:

tiện ích.directive("usersList", function() { return { restrict : "E", templateUrl : "users-list-template.html", scope: { users: "=", title: "

Chuyên mục: Công Nghệ