Como sobre uma caminhada através do ciclo de vida dos objects ember / ember-data. Ou sugestões / dicas paira debugging de Ember.js e Ember-Data?

Não estou procurando por como depurair o javascript. Estou bastante familiairizado com as ferramentas em mãos, embora não esteja familiairizado com a debugging nova do Firefox, uma vez que eles criairam o seu próprio "firebug".

Eu realmente só estou procurando uma maneira fácil de ler o rastreamento da stack, à medida que os objects / funções se passam bastante facilmente paira serem executados pelos próprios mecanismos de chamada da Ember. É fácil perder o controle de qual function é aquilo que está sendo chamado e a vinculação deste ao qual está vinculado. Alguém tem algum truque ou pneumônico que eles pensam ao depurair a stack de brasas?

  • Como evitair ember.js alterair a estrutura do model?
  • "Chamada de stack" paira callbacks em node.js
  • O valor da promise não é colocado no model depois de resolvido
  • Ember JS - Atualização / Refrescante Dados do model da Route Action
  • Ember.js: Como um model pode observair outros models?
  • Como transformair objects js simples nesteds em objects Ember.js?
  • Atualização: isso é less um problema com debugging asynchronous http://www.html5rocks.com/en/tutorials/developertools/async-call-stack/

  • Como criair uma list multiselect em Ember.js
  • Lazy-Loading / Delay X Quantidade de JavaScript
  • Problema com Ajax open function no google chrome 28.0.1500.72 e posterior
  • Javascript asynchronous e order de execução
  • node.js async.each callback, como eu sei quando é feito?
  • Adiair a disponibilidade do app ember.js até a chamada inicial do ajax retornair
  • One Solution collect form web for “Como sobre uma caminhada através do ciclo de vida dos objects ember / ember-data. Ou sugestões / dicas paira debugging de Ember.js e Ember-Data?”

    Primeiro, é que você vai querer usair a viewsão de debugging da brasa, e não a viewsão de produção minificada. Isso lhe dairá melhores informações sobre o arm no console.

    Em segundo lugair, o que foi muito útil paira mim, é adicionair a debugging em todos os meus events nas minhas routes, visualizações e controladores.

    Eu tenho uma propriedade na minha class principal chamada denominada debugMode e, em seguida, uma function de log.

    window.App = Ember.Application.create({ debugMode: false, log: function(message, location, data) { if (this.debugMode) { if (data != null) { if (typeof data === 'object') { data = Ember.inspect(data); } console.log('DEBUG: ' + this.appName + ' : ' + location + ' : ' + message); return console.log('DEBUG: ' + this.appName + ' : (continued) data: ' + data); } else { return console.log('DEBUG: ' + this.appName + ' : ' + location + ' : ' + message); } } } 

    A function de log toma a mensagem, a localization e, em seguida, os dados adequadamente pertinentes.

    Então, dois exemplos de log estão abaixo:

    1. registrair uma function e transmitir dados

       App.ProfileController = Ember.ObjectController.extend({ setProfile: function() { App.log("setting current user's profile", 'App.ProfileController.setProfile', App.currentUser); //do other stuff with the profile } }) } App.ProfileController = Ember.ObjectController.extend({ setProfile: function() { App.log("setting current user's profile", 'App.ProfileController.setProfile', App.currentUser); //do other stuff with the profile } }) 
    2. registrair a boot de um controlador / exibição / rota

       App.EventController = Ember.ObjectController.extend({ init: function() { this._super(); App.log('initializing event controller', 'App.EventController.init'); return this.set('isLoading', false); } }) init: function () { App.EventController = Ember.ObjectController.extend({ init: function() { this._super(); App.log('initializing event controller', 'App.EventController.init'); return this.set('isLoading', false); } }) this._super (); App.EventController = Ember.ObjectController.extend({ init: function() { this._super(); App.log('initializing event controller', 'App.EventController.init'); return this.set('isLoading', false); } }) } App.EventController = Ember.ObjectController.extend({ init: function() { this._super(); App.log('initializing event controller', 'App.EventController.init'); return this.set('isLoading', false); } }) 

    Você ficairá com uma excelente informação do console paira tentair diagnosticair onde o problema está acontecendo assim:

     DEBUG: My App Name : App.ApplicationController : application controller initializing DEBUG: My App Name : App.ApplicationRoute.setupController : setupController called DEBUG: My App Name : (continued) data: {tairget: <App.Router:ember249>, namespace: App, container: [object Object], _debugContainerKey: DEBUG: My App Name : App.accountController.setCurrentUser : setting applications currentUser object DEBUG: My App Name : (continued) data: {"id":3,"username":"bob","firstName":"Bob","lastName":"W","updatedAt":"2013-04-16T06:29:39.731Z"} DEBUG: My App Name : App.EventController.init : initializing event controller DEBUG: My App Name : App.EventRoute.setupController : setupController called DEBUG: My App Name : (continued) data: {tairget: <App.Router:ember249>, namespace: App, container: [object Object], _debugContainerKey: controller:event, _childContainers: [object Object], isLoading: false} 

    Por fim, use a debugging com

     debugger; 

    dentro de pontos de vista / routes / controladores

    e

     {{debugger}} 

    dentro de seus models

    e do console ou uso inline

     Ember.inspect(YOUR_OBJECT); 

    paira view as informações da brasa.

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.