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

标签 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

任何帮助将不胜感激。

最佳答案

设置守卫是个好主意:

而是使用 this.data.parent 编写:

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

关于javascript - Meteor:在渲染的回调中访问上下文(模板)数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25631767/

相关文章:

在 Accounts.createUser 上禁止 Meteor 注册

javascript - 拆分窗口位置 URL 并与数据属性值 JOIN 并刷新​​页面

javascript - 按钮在 div 悬停时可见

angularjs - 在 Angular 2 应用程序中使用本地 npm 存储库中的组件

node.js - Firebase Admin SDK - 创建没有密码的用户是否安全?

node.js - headless 浏览器和 Curl 哪个性能更快?

javascript - 在 Meteor JS 中,如何控制与 DOM 加载顺序相关的 Javascript 加载顺序?对于动画

node.js - Meteor:sortablejs 方法未被调用

javascript - 如何在 Three.js 中设置相机的位置而不使其旋转?

javascript - Laravel 中不返回表单值