1

現在、Ember App Kit と Coffeescript を使用して Ember を学習しています。

ES6 Resolver が適切に動作するためには、coffeescript で使用する必要のある特定のエスケープがあります。

基本的に、オブジェクトを定義するには、変数でラップする必要があります。

NewObject = Ember.Object.extend({
  //....code...
});

`export default NewObject`

ただし、インデックス コントローラーのようなもの (ネストされたディレクトリなど) を定義するにはどうすればよいですか?

通常、ファイルに名前を付けるだけだと思いますindex.js....しかし、変数でラップする必要がある場合は、coffeescriptで、その変数もインデックスと呼ぶ必要がありますか?

私はまだemberとcoffeescriptの両方に慣れていません。

4

1 に答える 1

1

ルート/コントローラーについて話しているのではないと仮定すると、はい、そのように名前を付けることができます。

Ember CLI を使用してビルドされたアプリは、AMD (Require.js) または CommonJS (Browserify) モジュールを使用するのではなく、ES6 モジュール トランスパイラーを介して ES6 モジュールを使用します。これは、将来の JavaScript バージョンの構文を使用してアプリを構築できることを意味しますが、既存の JavaScript ライブラリで現在使用できる AMD モジュールを出力します。

以前に Ember.js アプリを作成したことがある場合は、名前付け規則に従って、アプリが依存関係を自動的に解決できるように、すべてをグローバル名前空間に詰め込むことに慣れているでしょう。 App.FooRoute は、デフォルトで App.FooView をレンダリングすることを認識します。カスタム リゾルバを使用すると、Ember CLI アプリケーションは同様の機能を持ちますが、グローバル名前空間の代わりに ES6 モジュールを使用します。

たとえば、app/routes/index.js の次のルート定義:

var IndexRoute = Ember.Route.extend({    
  model: function() {
   return ['red', 'yellow', 'blue'];    
  }  
});
export default IndexRoute; 

routes/index というモジュールになります。リゾルバーを使用して、Ember がインデックス ルートを検索すると、このモジュールが見つかり、エクスポートしたオブジェクトが使用されます。

直接エクスポートすることもできます。つまり、変数を宣言する必要はありません。

export default Ember.Route.extend({    
  model: function() {
    return ['red', 'yellow', 'blue'];    
  }  
});
于 2014-06-18T04:26:13.093 に答える