記錄是使用Ember.js createRecord 方法創(chuàng)建的,您不能將promises作為關(guān)系當(dāng)前分配。this.store 在控制器和路由中可用。
您也可以使用 DS.Model 的任何實(shí)例上的 deleteRecord()刪除存儲(chǔ)的記錄。這會(huì)將記錄標(biāo)記為 isDeleted(true/false),也可以使用 save()持久保存已刪除的記錄。
store.createRecord('routeName',{ //declare the properties });
在上面的代碼中,'routeName'是正在使用的模板的名稱,并聲明該'routeName'的屬性。
<!DOCTYPE html> <html> <head> <title>Emberjs Creating and Deleting Records</title> <!-- CDN's--> <script src="/attachements/w3c/handlebars.min.js"></script> <script src="/attachements/w3c/jquery-2.1.3.min.js"></script> <script src="/attachements/w3c/ember.min.js"></script> <script src="/attachements/w3c/ember-template-compiler.js"></script> <script src="/attachements/w3c/ember.debug.js"></script> <script src="/attachements/w3c/ember-data.js"></script> </head> <body> <script type="text/x-handlebars" data-template-name="fruits"> <h1>Enter Fruit names to Add</h1> {{input type="text" value=newTitle action="createFru"}} {{#each fru in model itemController="fru"}} <p><b>{{fru.title}}:</b></p> <button{{action "removeFru"}}>Click To Remove</button> {{/each}} </script> <script type="text/javascript"> Fruits = Ember.Application.create(); Fruits.ApplicationAdapter = DS.FixtureAdapter.extend(); Fruits.Router.map(function () { //fruits route this.resource('fruits', { path: '/' }); }); Fruits.FruitsRoute = Ember.Route.extend({ model: function () { return this.store.find('fru'); } }); Fruits.Fru = DS.Model.extend({ //data model title: DS.attr('string') }); //attach fixtures(sample data) to the model's class Fruits.Fru.FIXTURES = [{ id: 1, title: 'Apple' }]; Fruits.FruController = Ember.ObjectController.extend({ actions: { removeFru: function () { var delitem = this.get('model'); delitem.deleteRecord(); delitem.save(); } } }); Fruits.FruitsController = Ember.ArrayController.extend({ actions: { createFru: function () { // Get the fru title set by the textfield var title = this.get('newTitle'); // Create the new Fruits model var fru = this.store.createRecord('fru', { title: title }); // Save the new model fru.save(); } } }); </script> </body> </html>
讓我們執(zhí)行以下步驟,看看上面的代碼如何工作:
將上述代碼保存在 models_crte_dlte.html 文件中
在瀏覽器中打開(kāi)此HTML文件。
更多建議: