2014-11-14 5 views

답변

1

가 작동 예입니다. Ember는 프로토 타입 확장을 사용합니다. 이것은 구현하지 않는 브라우저에서 ECMAScript 5 배열 메서드를 폴리 폴리하고, 내장 배열에 편의 메서드와 속성을 추가하며, 배열 변경을 관찰 할 수있게합니다. 문제는 pnotify가 일반적인 oldschool 자바 스크립트 배열로 작업 할 것으로 예상한다는 것입니다. 예를 들어이 배열 이상으로 루프를 원하는이 코드의 경우 :

... 
for (var i in options.buttons) { 
btn = options.buttons[i]; 
... 

이 루프는 엠버가 배열에 추가 한 방법을 반복한다 (예를 들어 addObjects, firstObject, ....)

그래서 이 문제를 해결하기 위해 2 가지 방법 :

1) 당신은 pnotify 코드를 수정하고 기여), 루프 배열에보다 강력한 구현

 ... 
     for (var i = 0; i < options.buttons.length; i++) { 
      btn = options.buttons[i]; 
     ... 

또는

 ... 
     for (var i in options.buttons) { 
      if(options.buttons.hasOwnProperty(i)){ 
      btn = options.buttons[i]; 
      ... 

2) 당신은 내가 할 엠버의 프로토 타입 확장, 권장하지 비활성화합니다. 여기에 더 많은 정보를 찾을 수 있습니다 : http://emberjs.com/guides/configuring-ember/disabling-prototype-extensions/하지만 많은 어려움을 겪을 것입니다.

간단히 말해 pnotify의 버그입니다.

+0

자세한 설명 주셔서 감사합니다! – Rudi

관련 문제