2014-11-24 2 views
-1

Emberjs를 사용하여 반환 된 json 데이터를 사용하여 div의 배경 이미지를 CSS로 변경하고 싶습니다. 그러나 다음 코드에서는 배경 이미지가 변경되지 않습니다.자바 스크립트로 DIV 배경 변경하기

그러나 리턴 코드를 제거하고 모델 내의 모델 코드를 모델에 넣으면 배경 이미지가 바뀌고 코드의 문제점은 무엇이며 어떻게 수정합니까? 감사합니다

App.ERoute = Ember.Route.extend({ 
    model: function() 
    { 
     var json = $.getJSON('url').done(function(result){ 
      return result; 
     }); 
    return json; 
    }, 
    afterModel : function(model) 
    { 

     $('#eventheader::shadow #headerBg').css('background-image' , 'url(' + model.image + ')'; 
    } 
}); 
+0

무엇을 수행하는':'당신의 선택에합니까? 관심있는 요소를 얻고 있는지 확인하기 위해 자바 스크립트 콘솔에서 선택기를 실행 해 보았습니까? – DLeh

+0

well :: Polymer 머티리얼 디자인 프레임 워크를 사용하고 있기 때문에, 그것의 이름은 – rksh

+0

입니다.':'jquery 셀렉터에서 자신의 의미를 가지고 있으며, 그것을 버리고있을 수도 있습니다. 브라우저의 콘솔에서'$ ('# eventheader :: shadow #headerBg')'를 실행하여 기대하는 요소를 반환하는지 확인하십시오. – DLeh

답변

0

경로의 모델 고리에서 배경 변경을 수행하는 것은 엠버 웨이가 아닙니다. 당신의 견해에서, 프리젠 테이션/뷰 로직을 수행해야합니다.

model: function() { 
    return Ember.$.getJSON('url').then(function() { 
    // perform some logic 
    }); 
}, 

afterModel : function(model) { 
    // this hook executes once the promise returned by model resolves 
    $('#eventheader::shadow #headerBg').css... 
} 

엠버 전환이 차단됩니다 beforeModel, modelafterModel가 해결 될 때까지 코드가 작동하려면

, 당신은 약속 같은 것을 사용합니다. 모든 후크가 해결 된 약속 또는 약속이 아닌 것을 반환 할 때까지 전환이 완료되지 않습니다 (보기가 렌더링되지 않음).

읽기 :

http://emberjs.com/api/classes/Ember.Route.html#method_model

http://emberjs.com/guides/understanding-ember/managing-asynchrony/

+0

엠버뷰에 대한 답을 줄 수 있습니까?이 코드는 내가 질문에 게시 한 코드와 유사하며 작동하지 않습니다. – rksh

관련 문제