Ember.js: рдПрдХ рд╕рд╣рд╛рдпрдХ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрд╖рди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 4 рдордИ 2015  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: emberjs/ember.js

рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рд╣реИ:

export function initialize(container, application) {
    application.inject('component', 'store', 'store:main');
    application.inject('component', 'application', 'application:main');
    application.inject('component', 'applicationController', 'controller:application');
    application.inject('helper', 'applicationController', 'controller:application');
    application.inject('model:device', 'application', 'application:main');
    application.inject('model:room', 'application', 'application:main');
    application.inject('model:setting', 'application', 'application:main');
    application.inject('route:application', 'application', 'application:main');
    application.inject('transform', 'application', 'application:main');
}

export default {
  name: 'injections',
  initialize: initialize
};

рд╕реВрдЪрдирд╛:

application.inject('helper', 'applicationController', 'controller:application');

рд▓реЗрдХрд┐рди рд╕рд╣рд╛рдпрдХ рдореЗрдВ, this.get('applicationController') рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ:

import Ember from 'ember';
import environment from '../utils/environment';

export function staticImg(path, options) {
    if (path) {
        var staticRoot = this.get('applicationController').get('model.staticRoot');
        return new Ember.Handlebars.SafeString('<img src="' + environment.staticHost() + staticRoot + path + '" class="' + ( options.hash.classNames || "" ) + '">');
    }
    else {
        return "";
    }
}

export default Ember.Handlebars.makeBoundHelper(staticImg);

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рд╣рд╛рдпрдХреЛрдВ рдкрд░ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕рдЯреАрдХ рд╕реЗрдЯрдЕрдк рдЕрдиреНрдп рдврд╛рдВрдЪреЗ рд╡рд░реНрдЧреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдирд╣реАрдВ ...

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдмрд╛рдж рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП, рдПрдореНрдмрд░ 2.x рдореЗрдВ рд╕рд╣рд╛рдпрдХ рдЕрдм "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ( Ember.inject.service рдпрд╛ рдкреНрд░рд╛рд░рдВрднрдХрд░реНрддрд╛ рдЖрдзрд╛рд░рд┐рдд рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ)ред

рдЙрджрд╛рд╣рд░рдг:

export default Ember.Helper.extend({
  i18n: Ember.inject.service('i18n'),

  compute(params, hash) {
    let i18n = this.get('i18n');
    // stuff here
  }
});

рд╕рднреА 6 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдк рд╕рд╣рд╛рдпрдХреЛрдВ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрд╢рди рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддреЗред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЕрдкрдбреЗрдЯ рдХрд░ рджрд┐рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдЖрдкрдиреЗ рдХрд╣рд╛рдВ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рдерд╛ рддрд╛рдХрд┐ рд╣рдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХреЗрдВ ...

рдЖрд╣ рдмрдХрд╡рд╛рд╕, рдЖрдкрдиреЗ рдЙрдиреНрд╣реЗрдВ 1.11 рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдерд╛ред рдзрдиреНрдпрд╡рд╛рджред рдареАрдХ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдХрд┐рд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрджрд┐ рд╣рдореЗрдВ рд╕рд╣рд╛рдпрдХреЛрдВ рдХреЗ рднреАрддрд░ рд╕реЗ рдХрдВрдЯреЗрдирд░ рд╕рд╛рдордЧреНрд░реА рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд╛рджреЗ Ember.Object рдЙрджрд╛рд╣рд░рдг (рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдХрдВрдЯреЗрдирд░ рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ)?

@atomkirk рдПрдХ рд╕рд╣рд╛рдпрдХ рдореЗрдВ рдХреБрдЫ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдирд┐рдпрдВрддреНрд░рдХ/рдШрдЯрдХ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрдВрдЬреЗрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рд╣рд╛рдпрдХ рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╛ рдХреЗрд╡рд▓ рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)ред рдпрд╛ рдмрд╕ рдПрдХ рд╕рд╣рд╛рдпрдХ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореИрдВ рдШрдЯрдХ рдХреЗ рдЕрдВрджрд░ рд╕рд╣рд╛рдпрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдорд╛рд░реНрдЧреЛрдВ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реВрдВ? рдпрд╣ рдЙрд╕ рд╕рд╣рд╛рдпрдХ рдХреЗ рдЕрдВрджрд░ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред
рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рдХреБрд╢рд▓ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП user.name рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рдЬрдмрдХрд┐ рдпрд╣ рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИред рддреЛ рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ 50 рдШрдЯрдХ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдШрдЯрдХ рдХреЗ рдЕрдВрджрд░ рд╕рд╣рд╛рдпрдХ рд╕реЗ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 50 рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдорд╛рди рдорд╛рди рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА ...
рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛?

рдЗрд╕реЗ Ember.js 1.13 рдореЗрдВ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреГрдкрдпрд╛ рджреЗрдЦреЗрдВ:

рдмрд╛рдж рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП, рдПрдореНрдмрд░ 2.x рдореЗрдВ рд╕рд╣рд╛рдпрдХ рдЕрдм "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ( Ember.inject.service рдпрд╛ рдкреНрд░рд╛рд░рдВрднрдХрд░реНрддрд╛ рдЖрдзрд╛рд░рд┐рдд рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ)ред

рдЙрджрд╛рд╣рд░рдг:

export default Ember.Helper.extend({
  i18n: Ember.inject.service('i18n'),

  compute(params, hash) {
    let i18n = this.get('i18n');
    // stuff here
  }
});
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

amk221 picture amk221  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kellyselden picture kellyselden  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nathanpalmer picture nathanpalmer  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rafaelbnp picture rafaelbnp  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Geokoumpa picture Geokoumpa  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ