我有一个对象数组。说
var
sidelist = [
{
name:"asdf",
id:1234,
types:[...]
}
];
使用此构造
将每个对象转换为页面上的框Template.global.side = function(){
var obj = [], m;
m = 1;
for (var i in sides){
obj.push({
index : m,
object : sides[i]
});
}
return obj;
}
HTML:
{{#each side}}
<div class="span{{this.index}}" id={{this.object.id}}>
<div class="side-head">{{this.object.name}}</div>
</template>
有一个函数可以创建新对象并将其推入数组。当它们所依赖的阵列发生变化时,如何让页面上的行反应更新?
因此,当我添加一个新对象时,应该会出现一个新框。
答案 0 :(得分:4)
如果您想使用依赖项,它可能如下所示:
var sidelist = ...;
var sidelist_dep = new Deps.Dependency;
Template.global.side = function(){
sidelist_dep.depend();
// Do your stuff here;
return ...;
};
// Important: call this every time you change sidelist,
// AFTER the change is made.
sidelist_dep.changed();
答案 1 :(得分:1)
在几乎所有情况下,您都应该将对象放在Meteor Collection
中,而不是作为被动对象一部分的数组。这有很多原因,包括以下
答案 2 :(得分:0)
看看Andrew Wilcox的隔离价值智能套装: https://atmosphere.meteor.com/package/isolate-value
README包含在存储在Session变量中的数组中添加/删除值时有选择地重新呈现相关模板的确切示例。