2013-06-23 31 views
26

Trong mã này:Trong góc cạnh, một dấu và trong chỉ thị có ý nghĩa gì?

app.directive('myCustomDirective', function() { 
    return { 
    restrict: 'EA', 
    scope: { value: '=myCustomDirective', clickable: '&', editing: '=' }, 
    template: '<span ng-click="handleClick()" ng-bind="value"></span>', 
    ... 

không clickable: '&' biểu thị gì?

Khi tôi tìm tài liệu về Góc, tôi không thể hiểu được. Nó dường như được viết trong một mã bắt-22 mà chỉ có thể được hiểu bởi những người đã hiểu những gì đang được giải thích.

Ví dụ: tôi tìm thấy this video, điều này dường như giải thích điều &, nhưng anh ấy cũng có thể đã nói tiếng Quan thoại.

+2

Tôi ở bên bạn về tài liệu API. Nó là hữu ích như MSDN (đọc: không phải là rất hữu ích) nếu bạn là một người mới bắt đầu. –

Trả lời

15

Cập nhật: API chỉ mới là here

Có một số giải thích thêm về các Understanding Scopes doc, và họ cung cấp hữu ích link này.

Khi tôi muốn hiểu nội dung này, tôi đã thực hiện Fiddle.

angular.module('scopePropertiesModule', []) 
    .directive('scopeProps', function(){ 
    return { 
     restrict: 'C', 
     scope: {parameterTitle:'@', 
       bidirecTitle:'=', 
       delegateDisplay:'&'}, 
     template: '<div>' + 
        'Parameter title :<br>' + 
        '<input ng-model="parameterTitle"> => {{parameterTitle}}<br>'+ 
        '<br>' + 
        'Biderectional title :<br>' + 
        '<input ng-model="bidirecTitle"> => {{bidirecTitle}}<br>' + 
        '<br>' + 
        'Delegate display :<br>' + 
        '{{delegateDisplay()}}<br>' + 
        '</div>' 
    } 
}); 

và đánh dấu:

<div class="scopeProps" 
    parameter-title="{{title}}" 
    bidirec-title="title" 
    delegate-display="displayTitle()"></div> 

Hãy thoải mái để chơi với nó.

+19

phạm vi hiểu biết doc rất khó hiểu –

+7

Họ nên viết hướng dẫn "Hiểu" Hiểu phạm vi "" –

+3

Sẽ tốt hơn nếu bạn đặt câu trả lời một cách rõ ràng trong câu trả lời. Câu trả lời là nếu bạn sử dụng các liên kết này hoặc nếu bạn nghiên cứu khối mã của tôi, bạn có thể tìm ra câu trả lời cho chính mình, nhưng tôi sẽ không nói cho bạn biết " * –

8

http://docs.angularjs.org/guide/directive (nhanh chóng tìm kiếm cho "phạm vi")

Từ các tài liệu:

& hay & attr - cung cấp một cách để thực hiện một biểu thức trong bối cảnh phạm vi phụ huynh. Nếu không có tên attr nào được chỉ định thì tên thuộc tính được giả định giống với tên cục bộ. Đưa ra và định nghĩa widget của phạm vi: {localFn: '& myAttr'}, sau đó cô lập thuộc tính phạm vi localFn sẽ trỏ đến một hàm bao hàm cho biểu thức count = count + value. Thường thì nó là mong muốn để truyền dữ liệu từ phạm vi cô lập thông qua một biểu thức và phạm vi cha, điều này có thể được thực hiện bằng cách chuyển một bản đồ các tên biến và giá trị biến cục bộ vào trong trình bao bọc biểu thức fn. Ví dụ, nếu biểu thức tăng (số lượng) thì chúng ta có thể chỉ định giá trị số lượng bằng cách gọi localFn là localFn ({amount: 22}).

6

Nó có nghĩa là khi đề cập đến các nhấp chuột được biến trong phạm vi chỉ thị, góc đánh giá biểu thức liên quan trong phạm vi phụ huynh và gán kết quả vào biến. Ví dụ, nếu bạn bao gồm các chỉ thị trong mã HTML của bạn theo cách này:

<my-custom-directive ... clickable='initialized && i > 0' ...> 

góc sẽ tính toán biểu thức initialized && i > 0 trong bối cảnh của phạm vi điều khiển trang và gán kết quả vào biến nhấp được trong phạm vi chỉ thị. Điều này sẽ được thực hiện động, biến chỉ thị được cập nhật mỗi khi giá trị biểu thức thay đổi.

+1

Cảm ơn bạn, điều đó rất hữu ích. – Cheeso

+0

Tôi không chắc biến chỉ thị được tự động cập nhật; "biến chỉ thị" là một hàm mà bạn phải gọi một cách rõ ràng để đánh giá biểu thức đó. – cipak

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