2012-04-06 30 views
8

Tôi muốn kết hợp các hiệu ứng jQuery (fadeIn, fadeOut, vv ...) vào các phần của các mẫu thanh điều khiển của tôi. Tôi nghĩ rằng điều này có thể nhiều hơn hoặc ít hơn được thực hiện với một chế độ xem riêng biệt trong đó thuộc tính isVisible của chế độ xem ban đầu là sai và phương thức didInsertElement của chúng tôi gọi một cái gì đó như this.$().fadeIn().Chế độ xem Ember, Tay lái và Hiệu ứng jQuery

Tuy nhiên, điều tôi muốn làm là thêm hiệu ứng jQuery vào một phần nhỏ của chế độ xem - cho mục đích hiển thị một khối nhỏ nội dung ban đầu được ẩn bởi câu lệnh {{#if}} đánh giá là false và sau đó thông qua phản hồi của người dùng được chuyển sang true. Xem http://jsfiddle.net/YeGbF/2/ sau đây.

Mọi đề xuất?

+3

Chỉ cần gợi ý: bạn có thể sử dụng 'toggleProperty' thay vì' set ('x',! Get ('x')) '... –

+0

Tôi đánh giá cao điều đó. Không thể tin rằng tôi không bao giờ nhận thấy rằng trước khi trên Ember.Observable. – mike

+0

Cũng có 'incrementProperty' và' decrementProperty' trên 'Ember.Observable', xem http://code418.com/blog/2012/03/31/useful-observable-functions/ – pangratz

Trả lời

14

Bạn có thể sử dụng một cái nhìn cho những thứ mà sẽ được hiển thị mờ, xem http://jsfiddle.net/pangratz666/dJMwC/

tay lái:

{{#view App.FadeInView contentBinding="this"}} 
    <div>{{content.someAdditionalDetail}}</div> 
{{/view}} 

Javascript:

App.FadeInView = Ember.View.extend({ 
    didInsertElement: function(){ 
     this.$().hide().show('slow'); 
    } 
}); 

Cũng có một xem Deferring removal of a view so it can be animated

+0

Cảm ơn. Những công việc này. – mike

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