【问题标题】:Iron-router - Can't access multiple data contextsIron-router - 无法访问多个数据上下文
【发布时间】:2014-07-17 01:47:20
【问题描述】:

我需要从我的模板助手访问多个数据源。我设法用 Iron-router 发送了多个数据源。

//router.js
...

papers: function() {
  return Papers.find();
},
data: function() {
    return {
      papers: this.papers(),
      check: {
        done: 'ok'
      },
      open: 'upper'
    };
}

...

问题是我无法访问这些对象的属性超过两个级别。

我的意思是:

<template name="page">
  {{pageName}}
</template>

...

Template.page.helpers({
  pageName: function() {
    return this.papers.name;
  }
}

引发错误。

同时:

Template.page.helpers({
  pageName: function() {
    return this.papers;
  }
}

renders: [object Object],可以的

对象字面量也是如此:this.check.done 抛出错误,但 this.open 正确呈现 'upper'。

【问题讨论】:

    标签: meteor iron-router spacebars meteor-helper


    【解决方案1】:

    问题在于 this.papers 在加载数据之前最初是未定义的。当您尝试访问未定义的name 属性时,您会收到错误。

    只需添加一个检查,它应该可以工作:

    Template.page.helpers({
      pageName: function() {
        return (this.papers) ? this.papers.name || '';
      },
    };
    

    【讨论】:

      猜你喜欢
      • 2015-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-04
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      • 1970-01-01
      相关资源
      最近更新 更多