คู่มือเริ่มต้นใช้งานด่วน Ember.js ขั้นต่ำของ Mike Grassotti
คู่มือการเริ่มต้นฉบับย่อนี้จะช่วยให้คุณได้รับจากศูนย์ไปเป็นมากกว่าศูนย์เล็กน้อยในสองสามนาที เมื่อทำเสร็จแล้วคุณควรรู้สึกค่อนข้างมั่นใจว่า ember.js ใช้งานได้จริงและหวังว่าจะมีความสนใจมากพอที่จะเรียนรู้เพิ่มเติม
คำเตือน: อย่าเพิ่งลองใช้คำแนะนำนี้แล้วคิดว่าถ่านดูดทำให้เกิด "ฉันสามารถเขียนคู่มือการเริ่มต้นฉบับย่อนั้นได้ดีกว่าใน jQuery หรือ Fortran" หรืออะไรก็ตาม ฉันไม่ได้พยายามขายคุณด้วยถ่านไฟหรืออะไรก็ตามคู่มือนี้เป็นเพียงแค่สวัสดีชาวโลกเท่านั้น
ขั้นตอนที่ 0 - ลองดู jsFiddle
jsFiddle นี้มีรหัสทั้งหมดจากคำตอบนี้
ขั้นตอนที่ 1 - รวม ember.js และไลบรารีอื่น ๆ ที่จำเป็น
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>
ขั้นตอนที่ 2 - อธิบายส่วนต่อประสานผู้ใช้ของแอปพลิเคชันของคุณโดยใช้เทมเพลตแฮนเดิลบาร์อย่างน้อยหนึ่งเทมเพลต
โดยค่าเริ่มต้น ember จะแทนที่เนื้อหาของหน้า html ของคุณโดยใช้เนื้อหาของเทมเพลต handlbars อย่างน้อยหนึ่งรายการ สักวันเทมเพลตเหล่านี้จะอยู่ในไฟล์. hbs ที่แยกจากกันซึ่งประกอบโดย sprockets หรืออาจจะเป็น grunt.js ตอนนี้เราจะเก็บทุกอย่างไว้ในไฟล์เดียวและใช้แท็กสคริปต์
ขั้นแรกให้เพิ่ม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>
ขั้นตอนที่ 3 - เริ่มต้นแอปพลิเคชันถ่านของคุณ
เพียงเพิ่มบล็อกสคริปต์อื่นApp = Ember.Application.create({});
เพื่อโหลด ember.js และเริ่มต้นแอปพลิเคชันของคุณ
<script type='text/javascript'>
App = Ember.Application.create({});
</script>
นั่นคือทั้งหมดที่คุณต้องสร้างแอปพลิเคชันถ่านไฟฉายพื้นฐาน แต่ก็ไม่น่าสนใจมากนัก
ขั้นตอนที่ 4: เพิ่มคอนโทรลเลอร์
Ember ประเมินแต่ละเทมเพลตของแฮนด์บาร์ในบริบทของคอนโทรลเลอร์ ดังนั้นแม่แบบมีการจับคู่application
ApplicationController
Ember สร้างขึ้นโดยอัตโนมัติหากคุณไม่ได้กำหนด แต่ที่นี่เรามาปรับแต่งเพื่อเพิ่มคุณสมบัติข้อความ
<script type='text/javascript'>
App.ApplicationController = Ember.Controller.extend({
message: 'This is the application template'
});
</script>
ขั้นตอนที่ 5: กำหนดเส้นทาง + ตัวควบคุมและเทมเพลตเพิ่มเติม
เราเตอร์ 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.js และแน่นอนว่าเป็นผู้เขียนบทช่วยสอนที่เกี่ยวข้อง: ฉันควรใช้รูปแบบการออกแบบจากบทช่วยสอนหนึ่งเมื่อใดและจากที่อื่นเมื่อใด
แบบฝึกหัดทั้งสองนี้แสดงถึงแนวทางปฏิบัติที่ดีที่สุดในขณะที่เขียน แน่นอนว่ามีบางสิ่งที่สามารถเรียนรู้ได้จากแต่ละสิ่งทั้งสองอย่างน่าเศร้าที่จะล้าสมัยเพราะ ember.js กำลังดำเนินไปอย่างรวดเร็ว จากทั้งสองอย่าง Trek เป็นปัจจุบันมากกว่า
ส่วนประกอบใดของแต่ละส่วนคือความชอบส่วนตัวและส่วนประกอบใดบ้างที่จะพิสูจน์ได้ว่าจำเป็นเมื่อแอปของฉันเติบโตเต็มที่ หากคุณกำลังพัฒนาแอปพลิเคชัน ember ใหม่ฉันไม่แนะนำให้ทำตามแนวทาง Code Lab มันล้าสมัยเกินไปที่จะเป็นประโยชน์
ในการออกแบบของ Code Lab ดูเหมือนว่า Ember จะใกล้เคียงกับที่มีอยู่ในแอปพลิเคชันมากขึ้น (แม้ว่าจะเป็น JS ที่กำหนดเอง 100% ก็ตาม) ในขณะที่แอปพลิเคชันของ Trek ดูเหมือนจะอยู่ใน Ember มากขึ้น
ความคิดเห็นของคุณกำลังปัง CodeLab ใช้ประโยชน์จากส่วนประกอบหลักของถ่านและเข้าถึงจากขอบเขตทั่วโลก ตอนที่เขียน (9 เดือนที่แล้ว) สิ่งนี้เป็นเรื่องธรรมดา แต่ปัจจุบันแนวทางปฏิบัติที่ดีที่สุดสำหรับการเขียนแอปพลิเคชัน ember นั้นใกล้เคียงกับสิ่งที่ Trek กำลังทำอยู่มาก
ที่กล่าวว่าแม้แต่บทแนะนำของ Trek ก็ล้าสมัย คอมโพเนนต์ที่จำเป็นApplicationView
และApplicationController
ตอนนี้สร้างขึ้นโดยเฟรมเวิร์กเอง
แหล่งข้อมูลที่เป็นปัจจุบันที่สุดคือชุดคู่มือที่เผยแพร่ที่http://emberjs.com/guides/
ซึ่งได้รับการเขียนขึ้นตั้งแต่ต้นในช่วงสองสามสัปดาห์ที่ผ่านมาและสะท้อนให้เห็นถึงถ่านรุ่นล่าสุด (ก่อนเผยแพร่)
ฉันยังตรวจสอบโครงการ wip ของ Trek ได้ที่นี่: 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