錯誤:未捕獲的錯誤:沒有處理動作「rollDice」。如果您確實處理了該操作,則可能是由於從控制器中的操作處理程序返回true導致該操作冒泡而導致此錯誤。 我確信,在控制器的方法具有相同的名稱作爲動作。 ???Emberjs沒有處理這個動作
HTML部
<script type="text/x-handlebars">
{{outlet}}
</script>
<script type="text/x-handlebars" id="index">
{{#linkTo "roll"}}Lets roll dice!{{/linkTo}}
</script>
<script type="text/x-handlebars" id="roll">
<p class="centerme">A Dice Roller.</p>
<p> </p>
<p>Click to play!<br/>
<button id="play" {{action 'rollDice'}}>Roll Dice</button>
</p>
<section id="roll-wrap">Dice stuff</section>
<script>
控制器
DiceRoller.RollController = Ember.ObjectController.extend({
var diceModel = this.get('model');
actions: {
rollDice: function() {
var x=[270,1080,1440,810];
var rand1=Math.floor(Math.random()*4);
var rand2=Math.floor(Math.random()*4);
diceModel.set('rotateXvalue',x[rand1]+"deg");
diceModel.set('rotateYvalue',x[rand2]+"deg");
diceModel.save();
}.property('diceModel.rotateXvalue','diceModel.rotateYvalue')
}
});
路由
DiceRoller.Router.map(function() {
this.resource("roll");
});
DiceRoller.IndexRoute = Ember.Route.extend({
redirect: function(){
this.transitionTo("roll");
}
});
DiceRoller.DiceRoute = Ember.Route.extend({
model: function() {
return this.store.find('Dice');
}
});
型號
DiceRoller.Dice = DS.Model.extend({
rotateXvalue: DS.attr('string'),
rotateYvalue: DS.attr('string')
});
DiceRoller.Dice.FIXTURES = [
{
rotateXvalue: '40deg',
rotateYvalue: '37deg'
}
];
http://jsbin.com/qosujasi/1/ 我的JS斌,到目前爲止,它給了我關於設置對象代理的內容的錯誤。
你有一個帶有{{outlet}}的應用程序模板嗎? – NicholasJohn16
另外,我認爲路由器中的DiceRoute是什麼發現模型? – hbs2014
由於您使用/#/ roll,您的路由將是'RollRoute',而您的控制器將是'RollController'。您仍然可以使用此路線的骰子模型,如下面的示例中所示。 – NicholasJohn16