尝试在控制器的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'));
}
}
});
答案 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