2013-09-02 1 views
3

그래서 나는 EmberJS에서 인증에이 자습서를 수행하고 있었고, 난 그 페이지에 표시된 초기화를 추가 할 때 내 응용 프로그램을 나누기. catch되지 않은 형식 오류 EmberJS 이니셜

은 '아무튼 이것은 당신의 App.User처럼

Uncaught TypeError: Object function() { 
    if (!wasApplied) { 
     Class.proto(); // prepare prototype... 
    } 
    o_defineProperty(this, GUID_KEY, undefinedDescriptor); 
    o_defineProperty(this, '_super', undefinedDescriptor); 
    var m = meta(this), proto = m.proto; 
    m.proto = this; 
    if (initMixins) { 
     // capture locally so we can clear the closed over variable 
     var mixins = initMixins; 
     initMixins = null; 
     this.reopen.apply(this, mixins); 
    } 
    if (initProperties) { 
     // capture locally so we can clear the closed over variable 
     var props = initProperties; 
     initProperties = null; 

     var concatenatedProperties = this.concatenatedProperties; 

     for (var i = 0, l = props.length; i < l; i++) { 
     var properties = props[i]; 

     Ember.assert("Ember.Object.create no longer supports mixing in other definitions, use createWithMixins instead.", !(properties instanceof Ember.Mixin)); 

     for (var keyName in properties) { 
      if (!properties.hasOwnProperty(keyName)) { continue; } 

      var value = properties[keyName], 
       IS_BINDING = Ember.IS_BINDING; 

      if (IS_BINDING.test(keyName)) { 
      var bindings = m.bindings; 
      if (!bindings) { 
       bindings = m.bindings = {}; 
      } else if (!m.hasOwnProperty('bindings')) { 
       bindings = m.bindings = o_create(m.bindings); 
      } 
      bindings[keyName] = value; 
      } 

      var desc = m.descs[keyName]; 

      Ember.assert("Ember.Object.create no longer supports defining computed properties.", !(value instanceof Ember.ComputedProperty)); 
      Ember.assert("Ember.Object.create no longer supports defining methods that call _super.", !(typeof value === 'function' && value.toString().indexOf('._super') !== -1)); 
      Ember.assert("`actions` must be provided at extend time, not at create time, when Ember.ActionHandler is used (i.e. views, controllers & routes).", !((keyName === 'actions') && Ember.ActionHandler.detect(this))); 

      if (concatenatedProperties && indexOf(concatenatedProperties, keyName) >= 0) { 
      var baseValue = this[keyName]; 

      if (baseValue) { 
       if ('function' === typeof baseValue.concat) { 
       value = baseValue.concat(value); 
       } else { 
       value = Ember.makeArray(baseValue).concat(value); 
       } 
      } else { 
       value = Ember.makeArray(value); 
      } 
      } 

      if (desc) { 
      desc.set(this, keyName, value); 
      } else { 
      if (typeof this.setUnknownProperty === 'function' && !(keyName in this)) { 
       this.setUnknownProperty(keyName, value); 
      } else if (MANDATORY_SETTER) { 
       Ember.defineProperty(this, keyName, null, value); // setup mandatory setter 
      } else { 
       this[keyName] = value; 
      } 
      } 
     } 
     } 
    } 
    finishPartial(this, m); 
    this.init.apply(this, arguments); 
    m.proto = proto; 
    finishChains(this); 
    sendEvent(this, "init"); 
    } has no method 'find' 
엠버 데이터에서
+0

어떤 페이지가 있습니까? ember.js의 어떤 버전을 사용하고 있습니까? – intuitivepixel

+0

나는 색인 페이지 만 가지고 있고 그것이 일어나고있는 곳입니다. 나는 EmberJS 1.0.0 (최신)을 실행 중이다 – Anujan

답변

5

1.0.0 베타 DS.Model 서브 클래스를 발생하는 오류입니다 응용 프로그램

Ember.Application.initializer({ 
    name: 'currentUser', 

    initialize: function(container) { 
    var store = container.lookup('store:main'); 
    var user = App.User.find('current'); 

    container.lookup('controller:currentUser').set('content', user); 
    container.typeInjection('controller', 'currentUser', 'controller:currentUser'); 
    } 
}); 

나누기 코드입니다 t 방법은 find입니다.

Ember.Application.initializer({ 
    name: 'currentUser', 

    initialize: function(container) { 
    var store = container.lookup('store:main'); 
    var user = store.find('user','current'); 

    container.lookup('controller:currentUser').set('content', user); 
    container.typeInjection('controller', 'currentUser', 'controller:currentUser'); 
    } 
}); 
:

  • store.find('user'); 쿼리

결과에 의해 발견 ID에 의해

  • store.find('user', { key: name });을 찾기 위해 모든 데이터
  • store.find('user', id);를 찾으려면 다음되는 대신 당신은 사용해야합니다

    도움이 되었기를 바랍니다.

  • +0

    와우. 그래, 그 속임수를했다. 감사합니다 :) – Anujan

    +1

    당신은 오신 것을 환영합니다. 이 방법이 효과가 있다면 대답을 수락하십시오. –

    +1

    안녕하세요. Márcio, 관련 문서를 참조하십시오. 공식 문서 (http://emberjs.com/api/data/classes/DS.Store.html)는 find가 여전히 존재한다고 주장하고 있습니다. 그리고이 이니셜 라이저를 누가 내게 보내야하는지 (Ember Data)? –

    관련 문제