バージョン 1.0.0 に近づいた (そして到達した!) Ember JS の進化についていくのは困難でした。チュートリアルとドキュメンテーションは行き来し、ベスト プラクティスと元の開発者の意図について多くの混乱を引き起こしました。
私の質問はまさにそれです: Ember JS のベストプラクティスは何ですか? Ember JS の使用方法を示す最新のチュートリアルや実用的なサンプルはありますか? コードサンプルは素晴らしいでしょう!
みんな、特に Ember JS 開発者に感謝します!
バージョン 1.0.0 に近づいた (そして到達した!) Ember JS の進化についていくのは困難でした。チュートリアルとドキュメンテーションは行き来し、ベスト プラクティスと元の開発者の意図について多くの混乱を引き起こしました。
私の質問はまさにそれです: Ember JS のベストプラクティスは何ですか? Ember JS の使用方法を示す最新のチュートリアルや実用的なサンプルはありますか? コードサンプルは素晴らしいでしょう!
みんな、特に Ember JS 開発者に感謝します!
このクイックスタート ガイドでは、数分でゼロからわずかに 0 を超えるレベルに到達できます。完了すると、ember.js が実際に機能することをある程度確信できるようになるはずです。うまくいけば、さらに詳しく知りたいと思うようになるでしょう。
警告: このガイドを試すだけではなく、「jQuery や Fortran でクイックスタート ガイドをより適切に記述できた」などと考えるのはやめましょう。私はエンバーなどであなたを売り込もうとしているわけではありません。このガイドはハローワールド以上のものではありません.
このjsFiddleには、この回答のすべてのコードがあります
Ember.js には jQuery と Handlebars の両方が必要です。これらのライブラリが 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 ページの本文を置き換えます。いつの日か、これらのテンプレートは、sprockets または grunt.js によって組み立てられた個別の .hbs ファイルに含まれる予定です。今のところ、すべてを 1 つのファイルに保持し、スクリプト タグを使用します。
application
まず、1 つのテンプレートを追加しましょう。
<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 の専門家、そしてそれぞれのチュートリアルの作成者に向けたものです。
これら 2 つのチュートリアルは、作成時のベスト プラクティスを表しています。それぞれから学べるものがあることは確かですが、悲しいことに、ember.js は非常に急速に変化しているため、どちらも時代遅れになる運命にあります。2つのうち、トレックのものははるかに最新です.
それぞれのどのコンポーネントが個人的な好みであり、アプリが成熟するにつれてどのコンポーネントが不可欠であることが証明されますか? 新しい ember アプリケーションを開発している場合は、Code Lab のアプローチに従うことはお勧めしません。時代遅れすぎて役に立たない。
Code Lab の設計では、Ember は (彼のカスタム JS の 100% であるにもかかわらず) アプリケーション内に存在することに近いように見えますが、Trek のアプリケーションは Ember 内により多く存在するように見えます。
あなたのコメントはばかげています。CodeLab は、ember のコア コンポーネントを活用し、グローバル スコープからそれらにアクセスしています。それが書かれたとき (9 か月前)、これはかなり一般的でしたが、今日の ember アプリケーションを作成するためのベスト プラクティスは、Trek が行っていたことにはるかに近いものになっています。
とはいえ、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を使用して、別の例も示します。
新規およびベテランの Ember.js 開発者の両方が活用すべき重要なプロジェクトがあります。
コマンドラインをある程度使いこなす必要がありますが、コミュニティが推奨するベスト プラクティスを使用して最新の Ember プロジェクトを数秒で生成できます。
Mike Grassottiの回答のように難しい方法でEmber.jsプロジェクトをセットアップすることは有益ですが、本番コードではそうしないでください。Ember-CLI
特に、Yehuda が承認したハッピー パスを表示するような強力で使いやすいプロジェクトがある場合は特にそうです。
@tomdale による 30 分間の新しいスクリーンキャストがあります: https://www.youtube.com/watch?v=Ga99hMi7wfY
Yeomanとそれに付随する Ember Generator の使用を強くお勧めします。アプリの開発、テスト、本番用の準備に必要なすべてのツールがすぐに利用できます。追加のボーナスとして、ビュー テンプレートを複数のファイルに分割し、保守可能なコードベースの作成を容易にするインテリジェントなディレクトリ構造から始めることができます。
約 5 分で起動して実行するためのチュートリアルを作成しました。node.js をインストールして、ここに従ってください
私は、Ember の前から始まる一連のビデオの作成を開始し、現実世界の深刻なユースケースで怒りの中で Ember を使用するように構築しました。
これが日の目を見ることに興味があるなら(興味があれば、最終的に公開できることを嬉しく思います)、私が作成した投稿にアクセスして、「いいね」を押してください(または、ここにコメントしてください。私は推測する):
コミュニティが繁栄するのを助けるだけでなく、人々が標準的な Web サイトを簡単な方法で構築する方法を学ぶのを助けるためにそれを作ることに非常に熱心です.
Ember.jsの旧式のFlame は、ember を初めて見る人にとってはまだ良いチュートリアルです。
最新の EmberJS と Ember-Data、Emblem テンプレート エンジンを使用する場合は、スターター キットを作成しました。すべて Middleman でラップされているため、CoffeeScript で開発できます。私の GitHub のすべて: http://goo.gl/a7kz6y
私は木炭ヨーマンアプローチを好みます。それはあなたに次のような箱から出してすぐに使えるたくさんのものを提供します:
もっと。
セットアップは非常に簡単で、実行yo charcoal
してアプリを作成しyo charcoal:module myModule
、新しいモジュールを追加するだけです。