2016-02-09 34 views
11

Theo the docs (cụ thể, bảng so sánh chỉ thị cho các thành phần), các thành phần góc cho phép yêu cầu các chỉ thị khác (hoặc chỉ là các thành phần?). Tuy nhiên, các thành phần không có chức năng liên kết, có thể cung cấp quyền truy cập vào bộ điều khiển yêu cầu. The source, trái với tài liệu, dường như gợi ý rằng không thể sử dụng 'yêu cầu' khi tạo thành phần. Cái nào đúng?Sử dụng 'require' trong thành phần góc

Trả lời

17

Nguồn được trích dẫn đã lỗi thời. Tính đến 1.5.0, bộ điều khiển thành phần can be required trong các thành phần khác (cùng áp dụng cho các chỉ thị).

Ví dụ từ hướng dẫn shows the way how the components and directives should interact trong 1.5 mà không cần sự trợ giúp từ link.

Khi require object and bindToController được sử dụng cùng nhau, các trường hợp bộ điều khiển bắt buộc được gán cho bộ điều khiển hiện tại làm thuộc tính.

Bởi vì điều này xảy ra trong quá trình liên kết chỉ thị, bộ điều khiển bắt buộc không có sẵn trong bộ điều khiển, đó là lý do tại sao $onInit magic method ở đó. Nếu nó tồn tại, it is executed right after adding required controllers đến this.

Cả

app.directive('someDirective', function() { 
    return { 
    scope: {}, 
    bindToController: {}, 
    controllerAs: 'someDirective', 
    require: { 
     anotherDirective: '^anotherDirective' 
    }, 
    controller: function ($scope) { 
     console.log("You don't see me", this.anotherDirective); 

     this.$onInit = function() { 
     console.log("Now you do", this.anotherDirective); 
     }; 
    } 
    } 
}); 

app.component('someComponent', { 
    controllerAs: 'someComponent', 
    require: { 
    anotherDirective: '^anotherDirective' 
    }, 
    controller: function ($scope) { 
    console.log("You don't see me", this.anotherDirective); 

    this.$onInit = function() { 
     console.log("Now you do", this.anotherDirective); 
    }; 
    } 
}); 

phong cách tuyên bố đang ở trên một mệnh dưới mui xe và thể được sử dụng thay thế cho nhau trong 1.5, và component là một súc tích.

Các vấn đề liên quan