2016-06-05 2 views
0

현재 엠버 응용 프로그램을 개발 중입니다.구성 요소 javascript 파일에서 속성에 액세스하는 방법?

현재 구성 요소 js 파일의 내부 경로에 설정된 속성에 액세스하려고합니다.

전반적으로 (일부 종류의 모델로) 경로 내부의 Facebook Graph API에서 데이터를 가져오고 구성 요소 내부의 해당 데이터에 액세스하여지도에 점을 그리는 것입니다.

내 템플릿은 다음과 같습니다

내 경로는 다음과 같습니다
// map.hbs 
{{map-widget posts=posts}} 

:

// components/world.js 
didRender() { 
    console.log(this.get('posts')) 
} 
: (나는 속성에 액세스하려는 경우)

// routes/world.js 
import Ember from 'ember'; 
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; 

export default Ember.Route.extend(AuthenticatedRouteMixin, { 
    fetchAllGeotaggedPosts() { 
    return new Promise((resolve, reject) => { 
     let postsArr = []; 
     function recursiveAPICall(apiURL) { 
     FB.api(apiURL, response => { 
      if (response && response.data) { 
      // Add response to posts array (merge arrays), check if there is more data 
      postsArr = postsArr.concat(response.data); 
      if (response.paging && response.paging.previous) { 
       recursiveAPICall(response.paging.previous); 
      } else { 
       // console.log(postArr) 
       resolve(postsArr); 
      } 
      } else { 
      reject(); 
      } 
     }) 
     } 
     recursiveAPICall('/me/feed?fields=id,name,message,picture,place,with_tags&with=location'); 
    }) 
    }, 

    beforeModel(transition) { 
    this._super(transition); 
    return this.fetchAllGeotaggedPosts().then(response => { 
     this.set('posts', response); 
     // console.log(this.get('posts')) 
    }) 
    }, 

    model: function() { 
    //console.log(this.get('posts')) 
    return this.get('posts')); 
    } 
}) 

내 구성 요소는 다음과 같습니다

제 문제는 게시물이 구성 요소 내에서 항상 정의되지 않는다는 것입니다. 즉, 구성 요소가 수신되거나 수신되지 않음을 의미합니다. 값에 액세스하지 마십시오.

beforeModel 및 모델 훅에서 게시 값에 액세스 할 수 있으므로 약속이 Facebook의 게시물로 해결되고 거부되지는 않습니다.

또한 정의되지 않은 문자열 값을 설정하려고했습니다.

해결책을 갖고 있거나 내 코드에서 오류를 인식하는 사람이 있습니까?

미리 감사드립니다.

답변

3

구성 요소에 게시물을 전달하고 있지만 게시물이 정의되지 않았으므로 원하는 것은 무엇입니까? {{map-widget posts=model}} 게시물을 반환하는 모델 함수에 액세스 할 수 있지만 아무 곳에서도 정의되지 않았기 때문에 게시물에 액세스 할 수 없습니다.

관련 문제