2.4 The Object Model -- Computed Properties and Aggregate Data with @each(계산된 속성과 @each 집합 데이터 사용)

2065 단어
1. 보통 계산된 속성은 그룹의 모든 요소에 의존해서 값을 정할 수 있다.예를 들어, 컨트롤러의 모든 todo items의 수량을 계산해서 얼마나 많은 작업이 완성되었는지 확인하려고 할 수도 있습니다.
export default Ember.Controller.extend({
    todos: [
        Ember.Object.create({ isDone: true }),
        Ember.Object.create({ idDone: false }),
        Ember.Object.create({ isDone: true })    
    ],

     remaining: Ember.computed('[email protected]', function () {
         var todos = this.get('todos');
         return todos.filterBy('isDone', false).get('length');//1
     });
});    
  • 여기에 의존하는 키 ([email protected]) 는 특수한 키 @each를 포함하고 있음을 주의하십시오
  • 네 가지 사건이 발생했을 때, 이 지시는ember이다.js 이 계산 속성의 귀속 및 발사 관찰자 업데이트(observers):
  • todos 수조의 모든 대상의 isDone 속성이 변경되었습니다..
  • todos 그룹에 하나 추가..
  • todos에서 항목 삭제..
  • 컨트롤러의 todos 속성이 다른 수조로 바뀌었습니다..

  • 위의 예에서reamaining의count값은 1:이다
  • import TodosController from 'app/controllers/todos';
    todosController = TodosController.create();
    todosController.get('remainging');

    2. 만약 내가 todo's isDone 속성을 바꾸면remaining 속성은 자동으로 업데이트됩니다.
    var todos = todosController.get('todos');
    var todo = todos.objectAt(1);
    todo.set('isDone', true);
    
    todosController.get('remaining'); //0
    
    todo = Ember.Object.Create({ isDone: false });
    todos.pushObject(todo);
    
    todosController.get('remaining');//1

    3. @each는 끼워 넣을 수 없습니다.
    정확:[email protected]
    오류:[email protected][email protected]

    좋은 웹페이지 즐겨찾기