return 来自助手(流星)的对象值
return object value from helper (meteor)
我有一个辅助函数,它接受一个参数和 returns 一个对象。
objectReturnHelper: function(param1) {
var obj1 = collectionName.findOne(param1).count1;
var obj2 = collectionName.findOne(param1).count2;;
return {
obj1: _.range(0, obj1),
obj2: _.range(0, obj2)
};
}
现在我想单独访问对象的值。这就是我想要做的:
{{#each objectReturnHelper id obj1}}
<p>TEST</p>
{{/each}}
但它没有产生任何结果。
但是如果我删除参数,它工作正常:
objectReturnHelper: function() {
var obj1 = 5;
var obj2 = 10;
return {
obj1: _.range(0, obj1),
obj2: _.range(0, obj2)
};
}
{{#each objectReturnHelper.obj1}}
<p>TEST</p>
{{/each}}
有什么见解吗?
为了更好的体现你对象的结构,你可以用#with
来恰当的access object context。在此上下文中,您可以使用 #each
在给定范围内为每个项目创建一个范围
{{#with objectReturnHelper id}}
{{#each this.obj1}}
<p>Test (1)</p>
{{/each}}
{{#each this.obj2}}
<p>Test (2)</p>
{{/each}}
{{/with}}
如果您的助手产生了意想不到的结果,您可以使用非侵入性回退:
objectReturnHelper: function(param1) {
var query = collectionName.findOne(param1)
if (!query) return null
var obj1 = query.count1;
var obj2 = query.count2;
return {
obj1: obj1 >= 0 ? _.range(0, obj1) : null,
obj2: obj1 >= 0 ? _.range(0, obj2) : null,
};
}
然后您可以使用 else
在 with
中捕获此回退,当上下文为假时自动触发:
{{#with objectReturnHelper id}}
{{#each this.obj1}}
<p>Test (1)</p>
{{/each}}
{{#each this.obj2}}
<p>Test (2)</p>
{{/each}}
{{else}}
<p>No data found</p>
{{/with}}
您当然可以将其配置为不同的回退,其中 else
在 each
块内捕获:
{{#with objectReturnHelper id}}
{{#each this.obj1}}
<p>Test (1)</p>
{{else}}
<p>No data found</p>
{{/each}}
{{#each this.obj2}}
<p>Test (2)</p>
{{else}}
<p>No data found</p>
{{/each}}
{{/with}}
我有一个辅助函数,它接受一个参数和 returns 一个对象。
objectReturnHelper: function(param1) {
var obj1 = collectionName.findOne(param1).count1;
var obj2 = collectionName.findOne(param1).count2;;
return {
obj1: _.range(0, obj1),
obj2: _.range(0, obj2)
};
}
现在我想单独访问对象的值。这就是我想要做的:
{{#each objectReturnHelper id obj1}}
<p>TEST</p>
{{/each}}
但它没有产生任何结果。 但是如果我删除参数,它工作正常:
objectReturnHelper: function() {
var obj1 = 5;
var obj2 = 10;
return {
obj1: _.range(0, obj1),
obj2: _.range(0, obj2)
};
}
{{#each objectReturnHelper.obj1}}
<p>TEST</p>
{{/each}}
有什么见解吗?
为了更好的体现你对象的结构,你可以用#with
来恰当的access object context。在此上下文中,您可以使用 #each
{{#with objectReturnHelper id}}
{{#each this.obj1}}
<p>Test (1)</p>
{{/each}}
{{#each this.obj2}}
<p>Test (2)</p>
{{/each}}
{{/with}}
如果您的助手产生了意想不到的结果,您可以使用非侵入性回退:
objectReturnHelper: function(param1) {
var query = collectionName.findOne(param1)
if (!query) return null
var obj1 = query.count1;
var obj2 = query.count2;
return {
obj1: obj1 >= 0 ? _.range(0, obj1) : null,
obj2: obj1 >= 0 ? _.range(0, obj2) : null,
};
}
然后您可以使用 else
在 with
中捕获此回退,当上下文为假时自动触发:
{{#with objectReturnHelper id}}
{{#each this.obj1}}
<p>Test (1)</p>
{{/each}}
{{#each this.obj2}}
<p>Test (2)</p>
{{/each}}
{{else}}
<p>No data found</p>
{{/with}}
您当然可以将其配置为不同的回退,其中 else
在 each
块内捕获:
{{#with objectReturnHelper id}}
{{#each this.obj1}}
<p>Test (1)</p>
{{else}}
<p>No data found</p>
{{/each}}
{{#each this.obj2}}
<p>Test (2)</p>
{{else}}
<p>No data found</p>
{{/each}}
{{/with}}