我有以下控制器:
Controller.extend({
login: function(params,route,query){
console.log(query.query);
var model = new LoginModel();
this.view = new LoginView({ region: 'main', model: model });
},
});
如何在控制器操作中获取查询字符串数据?上面我只是采取行动的第三个参数,它包含querystring
对象。是否有更好/更好的方法?
如何将此数据传递给视图,然后传递给模板?
答案 0 :(得分:0)
如何在控制器操作中获取查询字符串数据?以上我只是 采取行动的第三个参数,它包含查询字符串 宾语。有没有更好/更好的方法?
我认为这可能是最干净的方式。
如何将此数据传递给视图然后再传递给模板?
module.exports = class View extends Backbone.View
...
constructor: (options) ->
# Copy some options to instance properties.
if options
for optName, optValue of options when optName in @optionNames
this[optName] = optValue
...
将选项传递给视图构造函数时:
new LoginView({ region: 'main', model: model });
选项成为视图的属性,因此在视图方法中,您可以调用以下内容:
this.region
this.model
所以你可以传递一个额外的选项:
new LoginView({ region: 'main', model: model, query : query });
并覆盖视图中的函数getTemplateFunction
,以动态构建视图网址,并能够传递查询值。
getTemplateFunction: function() {
// You can access this.query here
// Get template via Ajax
// Compile and return template
return Handlebars.compile(templateStr);
}
您可以找到有关getTemplateFunction
here。
如果你想要的是向模型添加查询,你可以getTemplateData
而不是here。
希望它有所帮助!