2013-10-25 3 views
0

Ember.js에 응용 프로그램을 만들고 있는데 사용자에게 표시 할 속성을 모니터링하는 데 문제가 있습니다. 사용자가 로그인 할 때 "isTrue"라는 필드가 있고 "true"값을 가진 메시지 수를 확인하기 위해 API를 쿼리합니다. Ember.js 컨트롤러 속성 문제

언제 초기화를 통해 애플리케이션 제어부에서의 쿠키로부터 ID를 잡아하고 사용자가 시스템에 로그 : 함수()

이 데이터는 그 응용 프로그램 서식으로 표시되고있다. 이 작업을 수행하는 가장 좋은 방법입니까? 사용자가 "isNew"== "true"에서 "isNew"== "false"로 레코드를 변경하기 위해 버튼을 클릭 할 때 속성이 올바르게 업데이트되지 않는 문제가 있습니다. 이것이 최선의 방법인가요? 아니면 Ember의 관점에서 모든 잘못을 저지르고 있습니까?

App.ApplicationController = Ember.Controller.extend({ 

    messageCount: null, 

    init: function() { 

     var test = 0; 

     //get the cookie 
     //query an API to retrieve a set of records to check if a specific field is marked as true 
     //Compute the messageCount based on the number of records that are marked as true and set test equal to the message count. 

     this.set("messageCount", test); 

    getMessages: function() { 

     //repeat the code from the init function 
    } 

    actions: { 

     markAsRead: function() { 
      getMessages(); 
     } 
    } 

}) 
+0

어디에서 'isNew'가 재생 되나요? 'markAsRead'작업을 클릭하면 어떻게 속성 (나는 'messageCount'를 추측하고있다)은 클라이언트 나 서버에서만 업데이트가 되는가? 나는 단지 당신이 레코드를 바꾸려고하는 곳을 보지 못했다고 생각합니다. – Hana

+0

@Hana 'isNew'는 서버에 저장되며 사용자가 로그인하거나 메시지를 읽음으로 표시 할 때마다 API를 통해 쿼리됩니다 markAsRead 함수로 전달되는 액션을 통해. – datapanda

답변

0

검사는이 간단한 To Do List example에 완료된 작업의 수를 추적하는 방법.

messageCount: function() { 
    return this.filterProperty('isNew', true).get('length'); 
}.property('[email protected]'), 

지금 수동으로 설정할 필요가 없습니다, 그것은 자동으로 업데이트됩니다 :

당신은 당신에게이 같은 속성 뭔가를 설정해야합니다.

+0

속성 값을 서버에 저장하면 어떻게 통합 할 수 있습니까? 사용자가 markAsRead를 클릭 할 때마다 해당 레코드에 대한 'isNew'속성이 API 호출을 통해 false로 변경되고 레코드가 다시 읽혀지고 이에 따라 messageCount 속성이 업데이트됩니다. – datapanda