Ember JSがバージョン1.0.0に近づいた(そして到達した!)ため、Ember JSの進化に追いつくのは困難です。チュートリアルとドキュメントは消え去り、ベストプラクティスと元の開発者の意図について多くの混乱を招いています。
私の質問はまさにそれです:Ember JSのベストプラクティスは何ですか?Ember JSの使用方法を示す更新されたチュートリアルまたは作業サンプルはありますか?コードサンプルは素晴らしいでしょう!
皆さん、特にEmber JS開発者に感謝します!
Ember JSがバージョン1.0.0に近づいた(そして到達した!)ため、Ember JSの進化に追いつくのは困難です。チュートリアルとドキュメントは消え去り、ベストプラクティスと元の開発者の意図について多くの混乱を招いています。
私の質問はまさにそれです:Ember JSのベストプラクティスは何ですか?Ember JSの使用方法を示す更新されたチュートリアルまたは作業サンプルはありますか?コードサンプルは素晴らしいでしょう!
皆さん、特にEmber JS開発者に感謝します!
回答:
新規およびベテランのEmber.js開発者の両方が活用すべき重要なプロジェクトがあります。
コマンドラインである程度の快適さは必要ですが、コミュニティ推奨のベストプラクティスを使用して、ほんの数秒で最新のEmberプロジェクトを生成できます。
Ember.jsプロジェクトをMike Grassottiの回答のように難しい方法でセットアップすることは有益ですが、本番用コードではそうするべきではありません。特にEmber-CLI
、イェフダが承認したハッピーパスを示すような、強力で使いやすいプロジェクトがある場合は。
このクイックスタートガイドを使用すると、数分でゼロからゼロよりわずかに多くなります。完了すると、ember.jsが実際に機能することをある程度確信できるはずです。うまくいけば、詳細を学ぶのに十分興味があるでしょう。
警告:このガイドを試してみてはいけません。それで、残りが悪ければ「クイックスタートガイドをjQueryやFortranで書けます」などと思います。私はあなたを燃えさしなどで売ろうとはしていません。このガイドはhello-worldに過ぎません。
このjsFiddleには、この回答のすべてのコードがあります
Ember.jsにはjQueryとハンドルバーの両方が必要です。これらのライブラリがember.jsの前にロードされていることを確認してください。
<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>
<script type='text/javascript' src="http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0-rc.3/handlebars.js"></script>
<script type='text/javascript' src="http://cdnjs.cloudflare.com/ajax/libs/ember.js/1.0.0-rc.1/ember.js"></script>
デフォルトでは、emberは1つ以上のハンドルバーテンプレートのコンテンツを使用して、htmlページの本文を置き換えます。いつかこれらのテンプレートは、スプロケットまたはgrunt.jsによって組み立てられた個別の.hbsファイルに含まれるようになります。ここでは、すべてを1つのファイルに保存し、スクリプトタグを使用します。
最初に、単一のapplication
テンプレートを追加しましょう:
<script type="text/x-handlebars" data-template-name="application">
<div class="container">
<h1>Ember.js is easy?<small> Minimum Viable Ember.js QuickStart Guide</small></h1>
<p>{{message}}</p>
</div>
</script>
別のスクリプトブロックを追加しApp = Ember.Application.create({});
てember.jsをロードし、アプリケーションを初期化するだけです。
<script type='text/javascript'>
App = Ember.Application.create({});
</script>
基本的なemberアプリケーションを作成するために必要なことはこれだけですが、それほど興味深いものではありません。
Emberは、コントローラーのコンテキストで各ハンドルバーテンプレートを評価します。そのため、application
テンプレートは一致していApplicationController
ます。Emberは、定義しない場合は自動的に作成されますが、ここでカスタマイズしてメッセージプロパティを追加します。
<script type='text/javascript'>
App.ApplicationController = Ember.Controller.extend({
message: 'This is the application template'
});
</script>
Emberルーターにより、テンプレート/コントローラーをアプリケーションに簡単に組み合わせることができます。
<script type='text/javascript'>
App.Router.map(function() {
this.route("index", { path: "/" });
this.route("list", { path: "/list" });
});
App.IndexController = Ember.Controller.extend({
message: 'Hello! See how index.hbs is evaluated in the context of IndexController'
});
App.ListRoute = Ember.Route.extend({
setupController: function(controller) {
controller.set('content', ['angular.js', 'backbone.js', 'ember.js']);
}
});
</script>
これを機能させるために、{{outlet}}
ヘルパーを追加してアプリケーションテンプレートを変更します。Emberルーターは、ユーザーのルートに応じて適切なテンプレートをコンセントにレンダリングします。また、{{linkTo}}
ヘルパーを使用してナビゲーションリンクを追加します。
<script type="text/x-handlebars" data-template-name="application">
<div class="container">
<h1>Ember.js is easy?<small> Minimum Viable Ember.js QuickStart Guide</small></h1>
<p>{{message}}</p>
<div class="row">
{{#linkTo index class="span3 btn btn-large btn-block"}}Home{{/linkTo}}
{{#linkTo list class="span3 btn btn-large btn-block"}}List{{/linkTo}}
</div>
{{outlet}}
</div>
</script>
<script type="text/x-handlebars" data-template-name="list">
<h3 class="demo-panel-title">This is the list template</h3>
<ul>
{{#each item in content}}
<li>{{item}}</li>
{{/each}}
</ul>
</script>
<script type="text/x-handlebars" data-template-name="index">
<h3 class="demo-panel-title">This is the index template</h3>
<p>{{message}}</p>
</script>
このアプリケーションの実際の例は、こちらから入手できます。
このjsFiddleを独自のemberアプリの出発点として使用できます
参考までに、私の元の答え:
私の質問は、任意のEmber.jsエキスパート、そして確かにそれぞれのチュートリアルの作成者向けです。1つのチュートリアルのデザインパターンをいつ使用し、いつ他のチュートリアルのデザインパターンを使用する必要がありますか。
これらの2つのチュートリアルは、作成時のベストプラクティスを表しています。確かに、それぞれから学べることはありますが、ember.jsは非常に高速で動いているため、悲しいことに、どちらも古くなってしまいます。2つのうち、トレックははるかに最新です。
それぞれのコンポーネントは個人の好みであり、アプリが成熟するにつれてどのコンポーネントが不可欠となるでしょうか?新しいエンバーアプリケーションを開発している場合、コードラボアプローチに従うことはお勧めしません。古すぎて便利ではありません。
Code Labの設計では、Emberはアプリケーション内に存在しているように見えますが(カスタムJSの100%であるにもかかわらず)、TrekのアプリケーションはEmber内に存在するようです。
あなたのコメントは強打です。CodeLabは、コアエンバーコンポーネントを活用し、グローバルスコープからそれらにアクセスしています。それが書かれたとき(9か月前)はこれはかなり一般的でしたが、今日の残り火アプリケーションのベストプラクティスは、Trekがやっていたことに非常に近いものです。
とはいえ、トレックのチュートリアルでさえ時代遅れになっています。必要ApplicationView
でApplicationController
、現在フレームワーク自体によって生成されているコンポーネント。
断然最新のリソースは、http://emberjs.com/guides/で公開されている一連のガイドです。 は、過去数週間にわたってゼロから作成され、最新(プレリリース)バージョンのemberを反映しています。
ここでトレックのwipプロジェクトも確認してください。https://github.com/trek/ember-todos-with-build-tools-tests-and-other-modern-conveniences
編集:
@ sly7_7:ember-data https://github.com/dgeb/ember_data_exampleを使用して、他の例も示します
@tomdaleによる30分の新しいスクリーンキャストがあります:https : //www.youtube.com/watch?v= Ga99hMi7wfY
Fire Up Ember-Peepcodeスクリーンキャストは一見の価値があります。
また、Let's Learn Ember from Tuts + Premium というタイトルの無料のチュートリアルもご覧ください。そのfree courses
シリーズからので無料です。このコースは、タッツの連中が言うように、14の章に分かれています。
これがお役に立てば幸いです。
よろしく、
私は木炭ヨーマンのアプローチを好みます。これには、次のようなたくさんのものが含まれています。
もっと。
設定は非常に簡単で、実行yo charcoal
してアプリを作成してyo charcoal:module myModule
から新しいモジュールを追加するだけです。
詳細はこちら:https : //github.com/thomasboyt/charcoal
エンブレムテンプレートエンジンを備えたEmber-Dataで最新のEmberJSを使用する場合は、スターターキットを作成しました。すべてMiddlemanでラップされているので、CoffeeScriptで開発できます。私のGitHub上のすべて:http : //goo.gl/a7kz6y
私はEmberの前から始まり、Emberを怒りの中で現実世界のものの深刻なユースケースで使用することに向けて構築する一連のビデオの作成を開始しました。
これが当たり前のように見えることに興味がある場合(興味がある場合は、いつでも公開できることを嬉しく思います)、私が作成した投稿にアクセスして、「いいね!」を押す(またはここでコメントするだけです)私は推測する):
コミュニティの繁栄を助けるだけでなく、標準的なWebサイトを簡単に構築する方法を人々が学ぶのを助けることにも熱心です。