2013-12-15 8 views
0

나는 emberjs에서 정말 새로운 것이지만 나는 그것에 대해 더 많이 알고 싶다. 나는 엠버 (ember)와 함께 webapp을 만들고있다.ember.js, 컨트롤러에서 템플릿에 액세스 할 수 있습니까?

그래서 질문은 다음과 같습니다. model/users.js에 정의 된 모든 객체 사용자를 표시해야하는 페이지 (사용자)가 있습니다. iam이 내 나머지 API에서 사용자 객체를로드하는 동안 사용자 블록 (div id = users-id)에서 '처리 중 ..'(jquery blockui 사용)을 표시하려고합니다. 내가 userRoute에서 할 수 있는지 모르겠다. 아니면 다른 곳에 넣어야합니까?

==my users.hbs 
<div id="users-id" class="jumbotron"> 
    <ul class="users-listing"> 
     {{#each user in model}} 
     <li>{{user.name}} - {{user.email}}</li> 
     {{/each}} 
    </ul> 
</div> 

    ==usersRoute.js 
     App.UsersRoute = Ember.Route.extend({ 
     setupController: function(controller){ 
     $('#users-id').block({ 
     message: 'processing...'}); 
     $.getJSON('.../users').then(function(data){ 
     Ember.run(function() { 
      controller.set('model', data.body); 
     });    
     }); 
     $('#users-id').unblock(); 
    } 
    }); 

    ==usersController.js 
    App.UsersController = Ember.ArrayController.extend({ 
     sortProperties: ['name'], 
     sortAscending: true // false = descending 
    }); 

    ==user.js (model) 
    App.User = DS.Model.extend({ 
     name   : DS.attr(), 
     email  : DS.attr() 
    }); 

    ==store 
    App.ApplicationAdapter = DS.FixtureAdapter; 
    App.store = DS.Store.extend() 

    ==router 
    App.Router.map(function(){ 
     this.resource('users', function(){ 
      this.resource('user', { path:'/:user_id' }, function(){ 
       this.route('edit'); 
      }); 
      this.route('create'); 
     }); 
    }); 

나는 그 .. 당신을 감사 할 수있는 경우에는 잘 모릅니다.

답변

0

당신은 아마 2 가지 솔루션 중 하나에 관심이있을 것입니다.

  1. 새로운로드 경로 : https://gist.github.com/machty/6944577 (http://discuss.emberjs.com/t/proposal-nested-loading-routes/2895)
  2. 당신이 모델/setupController 동안 조작 할 수 있다는 것을, 당신의 타다 남은 앱 외부 사는 글로벌 로딩 div 요소는

문제와 스테이지 현재 접근 방식은 모델/setupController가 해결 될 때까지 해당 경로가 삽입되지 않는 템플릿입니다.

관련 문제