2012-06-18 33 views
19

Trong Ember.js của docs, họ có một đoạn mã jQuery với cú pháp sau:

this.$().button(); 

là đoạn này chỉ quay this vào một đối tượng jQuery sao cho chức năng jQuery UI .button() có thể được gọi trên đó?

Đoạn mã này có giống hệt nhau không?

$(this).button(); 
+0

Đoạn đầu tiên gợi ý rằng đối tượng jQuery ($) được lưu trữ dưới dạng thuộc tính trên 'this', có thể để tránh gây ô nhiễm phạm vi toàn cầu, nhưng tôi không chắc chắn. –

+0

Nhưng nó được thực hiện. Và nó trở lại, vì vậy nó bị xích lại. Tôi nghĩ rằng đó là hợp pháp, nhưng tôi sẽ không bao giờ nghĩ đến việc cố gắng ... – jcolebrand

+0

hiện this.button() làm việc? Nếu vậy, 'this' là một đối tượng jquery. – MMeah

Trả lời

26

Các source code giải thích điều này như sau:

/** 
    Returns a jQuery object for this view's element. If you pass in a selector 
    string, this method will return a jQuery object, using the current element 
    as its buffer. 

    For example, calling `view.$('li')` will return a jQuery object containing 
    all of the `li` elements inside the DOM element of this view. 

    @param {String} [selector] a jQuery-compatible selector string 
    @returns {Ember.CoreQuery} the CoreQuery object for the DOM node 
    */ 
    $: function(sel) { 
    return this.invokeForState('$', sel); 
    }, 

Vì vậy, để trả lời câu hỏi của bạn: không có nó không giống như $(this), trong đó sẽ quấn dụ xem ember trong một đối tượng jQuery ...

+1

Cảm ơn. Đó chính xác là câu trả lời tôi đang tìm kiếm. –

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