面向?qū)ο蟮姆治龊驮O(shè)計(jì)技術(shù)被稱(chēng)為對(duì)象建模。在Ember.js中,所有對(duì)象都來(lái)自Ember.Object。
類(lèi)是一個(gè)模板或藍(lán)色打印,具有變量和函數(shù)的集合,其中作為實(shí)例與該類(lèi)的對(duì)象相關(guān)。
您可以使用Ember.Object的extend()方法創(chuàng)建新的Ember類(lèi),如下所示:
App.NameOfClass = Ember.Object.extend({ VariableName1:'values', .. VariableNamen:'values', FunctionName: function(thing) { //display logic } });
NameOfClass和FunctionName是類(lèi)的名稱(chēng)和在類(lèi)中定義的函數(shù)的名稱(chēng)。
讓我們看看如何使用基類(lèi)來(lái)擴(kuò)展子類(lèi),如下所示:
App.Student = Ember.Object.extend({ disp: function() { var roll = this.get('rollnum'); var name = this.get('name'); document.write("Roll num: "+roll+" Name: "+name); } }); App StudentInfo = App.Student.extend({ rollnum:"12", name: "Jhon", });
在上面的代碼中,基類(lèi)的名稱(chēng)是Student,StudentInfo是子類(lèi),它由基類(lèi)擴(kuò)展。disp是在基類(lèi)中聲明的函數(shù)的名稱(chēng),顯示學(xué)生信息。您可以使用_super()方法來(lái)立即引用父類(lèi)方法。
下表顯示如何創(chuàng)建Ember類(lèi)的實(shí)例:
序號(hào) | 實(shí)例和說(shuō)明 |
---|---|
1 | 創(chuàng)建和初始化實(shí)例 通過(guò)調(diào)用create()方法創(chuàng)建該類(lèi)的實(shí)例化,并使用init()方法自動(dòng)初始化該類(lèi)的實(shí)例。 |
讓我們通過(guò)點(diǎn)擊以下鏈接看到一些關(guān)于對(duì)象模型的更多詳細(xì)信息:
計(jì)算屬性將函數(shù)聲明為屬性。您可以通過(guò)將計(jì)算屬性定義為一個(gè)函數(shù)來(lái)創(chuàng)建一個(gè),當(dāng)您請(qǐng)求屬性時(shí),ember.js會(huì)自動(dòng)調(diào)用。對(duì)計(jì)算的屬性的多次調(diào)用將始終返回相同的值。
如果兩個(gè)或多個(gè)對(duì)象之間存在關(guān)系,則使用Observer模式,例如,如果一個(gè)對(duì)象被更新,其依賴(lài)對(duì)象將被自動(dòng)通知。
綁定有助于組合兩個(gè)不同的層使同步。
更多建議: