2014-08-27 2 views
0

ember.js와 ember-cli를 동시에 배우는 데 어려움을 겪었습니다. 주로 ember.js 도움말 문서를 ember-cli 환경으로 변환하는 데 많은 어려움을 겪었습니다 . 다이내믹 세그먼트를 'id'이외의 필드와 함께 사용하는 방법을 알아 내려고 노력했습니다. Emberjs.com에서Ember와 Ember-Cli의 동적 경로 문제

그것은 jQuery.getJSON과 직렬화 기능을 사용하는 예제를 제공하지만, 나도 몰라 심지어 그것을 끝까지 할 필요가있는 경우 (엠버 - CLI에서 jQuery를 참조하는 방법을

1) 링크 위)를 말한다에 상관없이 내가 무엇을하려고 내 직렬화 기능에

나는 현재 transitionToRoute을 사용하고 있습니다 "를 '정의되지 않은'방법의 GET을 호출 할 수 없습니다"라는 오류를 얻을 것 같다

2) 왜냐하면 나는 link-to 도우미 대신 버튼에서 전환하려고하기 때문에 (더 나은 권장 사항은 매우 좋습니다. 왔다). 내 경로가

actions: { 
    viewDetails: function() { 
    this.transitionToRoute('project-details', this.get('projectName')); 
    } 
} 

경우 :

this.resource('project-details', {path: '/project/:project_projectName'});

그런 다음 엠버의 문서가이 것을 제안 여기

내 버튼을 사용하는 (이것은 컨트롤러에서의) 작업이다 프로젝트 세부 경로에서 필요한 것은 있지만 serializer의 순열이 작동하지 않아 뭔가 잘못하고 있다고 확신하지만 무엇을 모르겠습니다.

model: function(params) { 
    //I've tried all kinds of things in here, not sure if I need getJSON 
    // since right now I'm just using fixture data 
    //If I do need jQuery, not sure how to use it in ember-cli (i.e. the import statement to use) 
    return jQuery.getJSON('/project/' + params.project_projectName); 
}, 

serialize: function(model) { 
    return { project_projectName: model.get('projectName') }; 
} 

편집 :

var Project = DS.Model.extend({ 
    creationDate: attr('date'), 
    lastModifiedDate: attr('date'), 
    lastModifiedResourceId: attr('string'), 
    ppmcNumber: attr('number'), 
    ppmcUrl: attr('string'), 
    phase: attr('string'), 
    staffingProfile: attr('string'), 
    projectType: attr('string'), 
    projectDesc: attr('string'), 
    product: attr('string'), 
    clientId: attr('string'), 
    clientName: attr('string'), 
    overallStatus: attr('string'), 
    liveDate: attr('date'), 
    rygStatus: function(){ 
    return 'status-' + this.get('overallStatus').toLowerCase(); 
    }.property('overallStatus') 
}); 
+0

'projectName'은 어디에 정의되어 있습니까? "get"이 값을 찾지 못하기 때문에 오류라고 가정합니다. – Grapho

+0

@Grapho : projectName은 Project 모델에 정의되어 있습니다. 오류는 "undefined"라는 "get"메서드에 액세스 할 수 없다는 것을 말합니다.이 메서드는 어떤 모델인지 모르기 때문에 get 메서드를 실행할 수 없습니다. – redOctober13

+0

나는 조금 혼란 스럽다. 모델은 ember 데이터이지만 $ .getJSON을 사용하고있다. 언제 엠버 데이터 모델을 만들고 사용하고 있습니까? – Kingpin2k

답변

1

당신은 당신의 객체가 엠버 개체가 아니기 때문에 Ember.get를 사용하는 데 필요한 모델을 추가 (이 쉽게 객체를 포장하여 수리 할 수 ​​있습니다 Ember.Object.create({})에 있지만 getter 및 setter는 Ember 개체에만 적용됩니다.

serialize: function(model) { 
    return { project_projectName: Em.get(model, 'projectName') }; 
} 
+0

나에게 의미가 있지만, 입력하면, 내 모델에서 특정 필드에 사용되는 방법 인 toLowerCase를 찾을 수 없다는 오류가 발생합니다. rygStatus : function() {return 'status-'+ this.get ('overallStatus'). toLowerCase(); } .property ('overallStatus') ' – redOctober13

+0

당신이 그 과정에서 더 멀리있는 것처럼 들리 겠지만, 위의 모델을 버려두시겠습니까? 분명히'overallStatus'는 정의되어 있지 않거나 null입니다. 그러나 그 속성의 범위가 확실하지 않습니다. 입니다. – Kingpin2k