2016-11-08 11 views
2

Ember.JSの基になるシステムを把握しようとしています。どこにEmber-Objects が輸出され、どのように使用されていますか?Ember.JS:Ember-Objectsとそれらをどこにエクスポートするか

コンポーネント

export default Ember.Component.extend({ ... }); 

コントローラ

export default Ember.Controller.extend({ ... }); 

モデル

export default DS.Model.extend({ ... }); 

路線

export default Ember.Route.extend({ ... }); 

...それらはすべて同じ構造に従ってください:彼らはいくつかのオブジェクトと輸出何かを拡張します。

誰かもっと知っていますか?ありがとう!

答えて

4

exportというキーワードが間違っていると思います。

これは、ファイルが別の形式でどこかに書かれているわけではなくん:

モジュール(=ファイル)import EDであれば、その後、export編あり、そのファイル内のものが用意されていを輸入業者に送付する。

いくつかの部分を他のモジュールで使用できるようにすると、より短い用語でパブリックAPIになると考えてください。

Emberファイルは通常、Emberエンジンをそのように動作させる強力な命名規則があるため、1つのものだけをエクスポートします。
/userルートを宣言した場合、何も指定しなくても、routes/user.jscontrollers/user.js、およびtemplates/user.hbsファイルが存在する場合はそのファイルが使用されます。 同様に、これがテンプレート内でコンポーネントを使用できるようにするものです。

したがって、これらのファイルにはワンライナーexport default Ember.Something.extend({ ... });があります。

しかし、1つのファイルに複数のexport文を含むモジュール(=ファイル)を置くことができます。これは完全に有効です。バベルのウェブサイトから

// Example from babel website 

// lib/mathplusplus.js 
export * from "lib/math"; 
export var e = 2.71828182846; 
export default function(x) { 
    return Math.exp(x); 
} 
// app.js 
import exp, {pi, e} from "lib/mathplusplus"; 
console.log("e^π = " + exp(pi)); 

Learn ES2015は、いくつかの例があり、あなたはMDNexport文の詳細を読むことができます。

Emberアプリケーションでは、アプリケーションの複数のモジュールで使用される、またはEmberエンジンの自動インポートにバインドされていない、いくつかのディレクトリ内の大部分が複数のエクスポートファイルで検索されますユーティリティ。大丈夫、AAAAH

// utils/messages.js 
export var hello = 'Hello!'; 
export var bye = 'Good Bye!' 

// controllers/hello.js 
import { hello } from "utils/messages"; 

export default Ember.Controller.extend({ 
    firstName: 'David', 

    helloString: Ember.computed('firstName', function(){ 
    return `${hello} ${this.get('firstName')}`; 
    }) 
}); 
+0

ので、私は他のファイルに_rely_ファイル内に**インポート**のものを持っている:

次の例では、Ember.Controllerは、別のモジュールからエクスポート変数をインポート示して? – Timo

+0

"export"はノードにノードを表示させますか? – Timo

+0

はい、モジュールを使用するには 'import'文を使用する必要があります。また、これはES2015の機能なので、Babelのようなトランスパイライラーを使用しない限り、現在nodejでは使用できません。 – damienc

関連する問題