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);

Π’ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ говорится, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΈ, ΠΈ эта точная настройка Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ классами Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°, Π½ΠΎ Π½Π΅ здСсь ...

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ столкнСтся с этим ΠΏΠΎΠ·ΠΆΠ΅, ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΈ Π² Ember 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 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… дСйствий. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈ поТалуйста:

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ столкнСтся с этим ΠΏΠΎΠ·ΠΆΠ΅, ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΈ Π² Ember 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 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ

Π‘ΠΌΠ΅ΠΆΠ½Ρ‹Π΅ вопросы

omarestrella picture omarestrella  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Geokoumpa picture Geokoumpa  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

kellyselden picture kellyselden  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

hilem picture hilem  Β·  4ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

ggayowsky picture ggayowsky  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ