Javascript 使用零部件时,“拼接”错误地删除了最后一项
我正在使用Rivets.js在rv each-*块中绘制一些组件 当页面加载时,它们都呈现良好。 当我拼接模型的第一个图元时,模型会正确删除第一个图元,但rv each-*块会删除最后一个图元 组件只是由一个按钮组成,该按钮包含它绑定到的对象值的文本。在每个组件调用旁边,我打印一些也绑定到每个对象值的文本。这两者应该是相同的,但在拼接之后它们就不同了Javascript 使用零部件时,“拼接”错误地删除了最后一项,javascript,rivets.js,Javascript,Rivets.js,我正在使用Rivets.js在rv each-*块中绘制一些组件 当页面加载时,它们都呈现良好。 当我拼接模型的第一个图元时,模型会正确删除第一个图元,但rv each-*块会删除最后一个图元 组件只是由一个按钮组成,该按钮包含它绑定到的对象值的文本。在每个组件调用旁边,我打印一些也绑定到每个对象值的文本。这两者应该是相同的,但在拼接之后它们就不同了 var model2 = [{ "value":"1"},{"value":"2"},{"value":"3"}]; rivets.compon
var model2 = [{ "value":"1"},{"value":"2"},{"value":"3"}];
rivets.components['control'] = {
template: function() {
return '<button>{data.option.value}</button>';
},
initialize: function(el, attributes) {
return new controlviewmodel(attributes);
}
};
function doSplice()
{
model2.splice(0,1);
}
<table id="view">
<tr rv-each-option="model">
<td>
<control option="option"/>
</td>
<td>{option.value}</td>
</tr>
</table>
返回属性代码>是否可能是
控制视图模型
中的数据
是模型2
的副本,而不是引用?问题似乎在于初始化,新的控制视图模型(属性)为要绑定的对象创建了一个新模型,但当原始模型更改时,该引用不会更新。此示例可以通过替换“返回新的controlviewmodel(属性);”来修复具有“返回属性;”这是否与相关?是否controlviewmodel
中的this.data
是model2
的副本,而不是参考?问题似乎出现在初始化的新controlviewmodel(属性)中为要绑定到的此对象创建新模型,但在更改原始模型时该引用不会更新。此示例可以通过替换“返回新的controlviewmodel(属性);”来修复具有“返回属性;”这可能与什么有关?
return new controlviewmodel(attributes);