ボタンをクリックすると、次のようにビューでクリックをキャッチします。
events:{
'click .parameter-input a': 'saveParameter'
},
saveParameter 関数で私はこれを行います:
saveParameter: function(ev) {
parameter.value = $('.parameter-input .param').val();
console.log(parameter.value);
router.navigate("#/page2/" + parameter.value, {trigger:true});
return false;
}
そして私のルートは次のように定義されています:
var Router = Backbone.Router.extend({
routes: {
"": "home",
"page2/*parameter": "UIpage2",
}
});
var page1 = new Page1();
var page2 = new Page2();
var router = new Router;
router.on('route:home', function() {
page1.render();
console.log("page1 render");
})
router.on('route:UIpage2', function(parameter){
page2.render();
console.log("page2 render " + parameter.value);
})
Page2 は次のように定義されます。
var Page2 = Backbone.View.extend({
el:'.page',
render: function() {
var template = _.template($('#page2').html(), {parameter: parameter});
this.$el.html(template);
}
});
.page に移動したときに page2 render で .page を再度強制的に更新するにはどうすればよいですか? ページ 2 のレンダリングが呼び出されることはありません。
編集: parameter は、入力ボックスから取得された文字列値であり、mydomain.com/#/page2/parameter のような URL および page2 の div に表示される必要があります。