如何在Controller中获取Model值

时间:2014-10-21 09:30:06

标签: ember.js

尝试在控制器的item(警报)中获取已点击的action的值,但我总是得到undefined。我想从模型中返回JSON(多个条目)并在控制器中访问它(不使用FixtureAdapter)。

<script type="text/x-handlebars" data-template-name="first">
...        
{{#each item in model}}
  <p {{action 'myClick'}}>{{item.name}}</p>
{{/each}}
...

App.FirstRoute = Ember.Route.extend({
    model: function(){
        return [
            {name: 'Ruby'},
            {name: 'Java'}
        ]
        //return [ 'Ruby', 'Java', 'Scala'];
    }
});

App.FirstController = Ember.Controller.extend({
  title:'data from FirstController',
  actions: {
      myClick: function() {
          alert('action in controller -> ' + this.get('model').get('name'));
      }
  }
});

1 个答案:

答案 0 :(得分:2)

为什么不将您的商品作为参数传递给您的操作?

{{#each item in model}}
  <p {{aciton 'myClick' item}}> {{item.name}} </p>
{{/each}}


App.FirstController = Ember.Controller.extend({
  title:'data from FirstController',
  actions: {
    myClick: function(item) {
      alert('action in controller -> ' + item.name);
    }
  }
});

顺便说一句,你没有在你的路线中返回Ember.Object。您的模型是纯javascript对象的数组,因此而不是item.get('name')使用item.name