削除したエンバールートがあります
App.MyRoute = Ember.Route.extend({
model: function(params){
console.log("model function executing");
Ember.Object.create()
},
setupController: function(controller){
console.log("setupController function executed");
}
});
MyRoute に切り替えると、setupController が実行されますが、モデルを設定する関数は実行されません。モデルは、タグmsg
で渡されたオブジェクトになります。 {{link myRoute msg}}
そのルートに切り替えるときに、ロード/計算する必要があるモデルの部分があります。これを行うには、モデルを正常に更新できるか、setupController 関数内からリンクで渡されたパラメーターにアクセスできる必要があります。これを達成するための最良の方法に関する提案はありますか?
編集
これをハッシュ化するために、この動作を生成する完全な最小限の例を作成しました。
私のhtmlは:
<html>
<head>
<title> This is my Page! </title>
<script src="js/libs/jquery-1.8.2.js"></script>
<script src="js/libs/handlebars-1.0.rc.1.js"></script>
<script src="js/libs/ember.js"></script>
<script src="js/app.js"></script>
</head>
<body>
<script type="text/x-handlebars">
{{#linkTo example App.thing}}<p> go </p>{{/linkTo}}
<div>
{{outlet}}
</div>
</script>
<script type="text/x-handlebars" data-template-name="index">
<p> Initial Text </p>
</script>
<script type="text/x-handlebars" data-template-name="example">
<p> After change </p>
</script>
</body>
</html>
アプリコードで:
var App = Ember.Application.create();
App.Router.map(function() {
this.resource("example", {path: "/example/:id"});
});
App.thing = Ember.Object.create({
id:10,
});
App.ExampleRoute = Ember.Route.extend({
model: function(params){
console.log("in model function");
return new Ember.Object.create();
},
setupController: function(controller){
console.log("in setupController");
}
});
サンプル ルートへのリンクをクリックすると、「in setupController」は出力されますが、「in model function」は出力されません。