我有一个index.html文件,其中有一个带有动作处理程序的按钮。
<button {{action 'modules'}} > press </button>
但按下按钮时没有任何反应。
请查看jsbin上的代码:
http://jsbin.com/OREMORe/1/edit
随意纠正任何其他不一致之处。 感谢任何帮助。 THX。
答案 0 :(得分:1)
你会像this那样做。请注意,您的代码存在一些问题:
1)您的手柄代码中包含的按钮未包含在手柄script
标记中
2)您的'模块'模板位于应用程序模板中
3)您没有包含必要库的有效链接
4)没有为应用程序指定rootElement
5)您试图访问ModulesController
中的ApplicationRoute
。我插入了一个重定向到'模块'
6)您试图在module
循环中访问{{#each}}
,但模型中不存在此问题。你想要的是content
。
<script type="text/x-handlebars" data-template-name="application">
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="modules">
<ul>
{{#each content}}
<li>{{this}}</li>
{{/each}}
<button {{action 'modules'}} > press </button>
</ul>
</script>
和
var Test1 = Ember.Application.create({
rootElement: 'body',
ready: function() {
console.log("App ready1");
}
});
Test1.IndexRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('modules');
}
});
Test1.Router.map( function() {
this.route('modules');
});
Test1.ModulesController = Ember.Controller.extend({
actions: {
modules: function() {
console.log('clicked the button');
/* this.transitionToRoute('modules');*/
}
}
});
Test1.ModulesRoute = Ember.Route.extend({
model: function() {
return ['item1', 'item2'];
}
});