2013-08-28 2 views
0

Ember.js에서 $ .getJSON을 사용하려고합니다. (기본적으로 Ember-Data를 피하려고합니다.) 모델을로드, 나도의 컨트롤러를 필요 않는 나는 데

<body> 
     <script type="text/x-handlebars" data-template-name="MyTemplate"> 


      {{#each item in controller }} 
      <tr><td> 
      <p> {{item.name}}</p> 
      </td></tr> 
      {{/each}} 

     </script> 

     <script type="text/x-handlebars"> 
      <h1>Application Template</h1> 
      {{outlet}} 
     </script> 

    </body> 

문제가되지이다 : 여기 내 HTML이야 여기 내 코드는

App = Ember.Application.Create(); 

App.Model = Ember.Object.extend({ 

}); 

App.Users = App.Model.extend({ 
    id: null, 
    name: null 
}); 


App.UsersRoute = Ember.Route.extend({ 
    model: function(){ 
     return App.Users.findAll(); 
    } 
}); 

App.Users.reopenClass({ 
    findAll: function() { 
    var result = Ember.ArrayProxy.create({content: []}); 

    $.getJSON('user.php', function(data) { 
     $.each(data, function(i, row) { 
     result.pushObject(App.Users.create(row)); 
     }); 
    }); 

    return result; 
    } 
}); 

을 그리고? 아니면 내가 놓친 부분이 있단 말인가?

+0

'create'에는 소문자가 있습니다. c. 클래스 이름은 대문자로 시작합니다. 메소드와 인스턴스는 소문자로 시작합니다. –

+0

고마워! 나는 그런 멍청하다 : ( –

답변

2

응용 프로그램을 만들 때 약간의 오타가 있습니다.

App = Ember.Application.create(); 

추신 : 코드가 정상적으로 보입니다. 라우터 맵핑 만 누락되었지만 의도적으로 예제에서 벗어난 것 같습니다.

업데이트 : 당신은 당신의 UsersRoute에 대한 매핑을 정의해야

:

App.Router.map(function() { 
    this.resource("users", { path: "/users" }); 
}); 
템플릿은 users으로 따라 지정해야

:

<script type="text/x-handlebars" data-template-name="users"> 


      {{#each item in controller }} 
      <tr><td> 
      <p> {{item.name}}</p> 
      </td></tr> 
      {{/each}} 

     </script> 

을 그리고 마지막으로 당신은을 만들어야합니다 기본 애플리케이션 템플릿의 경로 링크 :

<script type="text/x-handlebars"> 
    <h1>Application Template</h1> 
    {{outlet}} 
    {{#linkTo "users"}} Link to UsersRoute{{/linkTo}} 
</script> 
+0

나는 내 질문을 편집 했으므로 라우터 매핑이 누락 된 것 같아요. –

+0

템플릿 이름에 대해 혼란 스럽습니다. 템플릿 이름을 어떻게 결정해야합니까? –

+0

이 경우 매우 간단합니다. userRoute, UsersController, UsersView 및 이에 따라 명명 된 템플리트가 필요합니다. – mavilein

관련 문제