console
Yox.component("Xcc", {
model: "opts",
template: `
<span style="color: red" >{{sex}} {{opts.name}} <button on-click="setName(this)">set</button></span>
`,
methods: {
setName(){
this.set("sex", "sex被组件自身改了")
this.set("opts.name", "opts.name也被组件自身改了")
}
}
});
var app = new Yox({
el: '#app',
template: '#template',
data: {
version: Yox.version,
list: [
{sex: "m", opts: {name: "aaa"}},
{sex: "m", opts: {name: "bbb"}},
{sex: "m", opts: {name: "ccc"}}
]
},
methods: {
setOpts: function(){
let users = this.copy(this.get("list"));
users.forEach(function(user) {
user.opts.name = "ccc";
user.sex = "user.sex 可以改, user.opts.name 改不了";
});
this.set("list", users);
}
}
})
<div id="app"></div>
<script id="template" type="text/plain">
<div>
{{version}} <hr>
<button type="button" on-click="setOpts()">setCompOptsFromRoot</button>
<ul>
{{#each list}}
<li><Xcc model="opts" sex="{{sex}}" /></li>
{{/each}}
</ul>
</div>
</script>