我有一组帖子作为数据:
var ractive = new Ractive({
el: '#templateContainer',
template: '#template',
data: {
Posts: [{"Id":"posts/97", Content="Blog post test", Date="Something"}, ...];
}
});
在某些时候,我收到了博客文章内容发生变化的通知:
funcion onBlogPostContentChanged(postId, newContent) {
ractive.set(..., newContent);
}
问题在于,我不知道如何指定ractive.set
,以便针对具有特定ID的博客帖子更改内容。
答案 0 :(得分:1)
您可以通过数组索引和属性设置密钥路径:
function onItemChanged(id, newContet) {
var posts = r.get('Posts'), index = -1
for(var i = 0; i < posts.length; i++){
if(post[i].Id === id){
index = i
break
}
}
if(index !== -1){
r.set('Posts.' + index + '.Content', newContent)
}
// or if using "magic: true"**
Posts[index].Content = newContent
}
有关工作示例,请参阅http://jsfiddle.net/pj6myzch/。