0

Local Storage Adapterを使用するサンプル アプリを作成します。hbs コードは次のとおりです。

  <script type="text/x-handlebars">
<h2>Welcome to Ember.js</h2>
<input type="button" {{action cr}} value="Create"/>
<ul>
{{#each item in model}}
<li>{{item.name}}</li>
{{else}}
NO Item
{{/each}}
<ul>
</script>

app.js ファイルは次のとおりです。

App = Ember.Application.create();
App.LSAdapter = DS.LSAdapter.extend({
namespace: 'app'
});

App.ApplicationAdapter = DS.LSAdapter;

App.Router.map(function() {
});

App.Store = DS.Store.extend();
App.store = App.Store.create();
App.Item = DS.Model.extend({
name:DS.attr('string'),
uniqueName:DS.attr('string')
});
App.ApplicationRoute = Ember.Route.extend({
model:function(){
    return this.get('store').findAll('item');
}
});
App.IndexRoute = Ember.Route.extend({
model:function(){
    return this.get('store').findAll('item');
}
});
App.Item.reopen({
url:'localhost/app/'
});
App.ApplicationController = Ember.ArrayController.extend({
actions:{
cr:function(){
this.get('store').createRecord('item',{
    id:Math.random().toString(32).slice(2).substr(0, 5),
    name:'Hello',
    uniqueName:'Hello 2'
});
App.store.commit();
}
}
});

しかし、私はエラーが発生します:

Uncaught TypeError: Object [object Object] has no method 'commit' 

私は emberjs 1.0 と最後の ember データ ビルドを使用しています。レコードをローカル ストレージに保存したいのですが、サンプルが見つかりません。

4

1 に答える 1

2

Storeを明示的に作成する必要はないため、次の行を削除します。

App.store = App.Store.create();

さらに、これを次のように変更しますApplicationController

App.ApplicationController = Ember.ArrayController.extend({
  actions:{
    cr:function(){
      var item = this.get('store').createRecord('item',{
        id:Math.random().toString(32).slice(2).substr(0, 5),
        name:'Hello',
        uniqueName:'Hello 2'
      });
      item.save();
    }
  }
});

それが役に立てば幸い。

于 2013-09-14T09:38:30.387 に答える