Meteor:访问渲染回调中的上下文(模板)数据

时间:2014-09-02 20:24:09

标签: javascript node.js meteor meteor-blaze

我有yield部分的模板:

  {{>yield}}

yield我显示表单中,其中的字段填充了当前正在编辑的类别数据:

this.route('editCategory', {
    path: '/panel/category/:_id/edit',
    layoutTemplate: 'panelTemplate',
    template: 'editCategoryTemplate',
    data: function(){
        return Categories.findOne(this.params._id);
    },
});

有一个选择框,(我选择父类别)有几个选项。我用脚本选择了以前选择的选项:

Template.editCategoryTemplate.rendered = function(){
    $('#categoryParent option[value="'+ this.data.parent +'"]').prop('selected', true);
};

一切正常,但重新加载页面后出现错误:

Exception from Deps afterFlush function: this.data is null

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

最好放卫兵:

而是使用this.data.parent写:

Deps.autorun(function(){
  var parentData = this.data && this.data.parent;
  if(parentData){
    $('#categoryParent option[value="'+ parentData +'"]').prop('selected', true);
  }
})