2012-12-25 1 views
6

뷰가 렌더링 될 때 실행해야하는 jQuery 코드가 있습니다. 처음 들어 내가 쉽게Ember.js에서 뷰 재 렌더링을 어떻게 바인딩 할 수 있습니까?

App.FooView = Ember.View.extend({ 
    didInsertElement: function() { 
    console.log("the view was rendered"); 
    this.$().someStuff(); 
    } 
}); 

을 할 수있는 렌더링하지만 someStuff() 방법은 뷰 요소의 속성을 조작하기 때문에 뷰 인해 데이터 바인딩에 다시 렌더링되는 경우는 잃을 것이기 때문에, 나는 그것을 실행해야 사용자 정의 생성 속성.

+1

didInsertElement 대신 $(). someStuff() 안의 afterRender 메소드 & 알려주세요 ... –

답변

15

특정 속성이 같은 보일 것 원하는 그 다음 무엇을 변경 할 때보기를 다시 렌더링하려는 경우 : 당신은 단지 후보기를 다시 렌더링하기 위해 찾고 있다면

App.FooView = Ember.View.extend({ 
    myProperty: 'This value might change', 
    myPropertyChanged: function() { 
     //Do some stuff here (maybe change the template) and call... 
     this.rerender(); 
    }.observes('myProperty') 
}); 

을하지만, 보기는 더 이런 일을하려면 다음 생성됩니다

App.FooView = Ember.View.extend({ 
    init: function() { 
     this._super(); 
     //Do some stuff here (maybe change the template) and call... 
     this.rerender(); 
    } 
}); 

자료 제공 : 추가에http://emberjs.com/api/classes/Ember.View.html

0

Akash의 설명에 따르면, init 훅 대신에 didInsertElement 훅을 사용하여 뷰가 생성 된 후에 만 ​​다시 렌더링하고자 할 것이다. 그래서 그것은 다음과 같이 보일 것입니다 :

뷰가 이미 렌더링 된 후에 왜 다시 렌더링해야하는지 확실하지 않습니다.

관련 문제