var d_1 = [{
age: 12,
selected: true
}, {
age: 1,
selected: false
}, {
age: 2,
selected: false
}];
var d_2 = Backbone.Reactive(d_1, {
link: function(parent, child) {
parent.listenTo(child, 'all', function(e, event, options) {
debugger;
var info = 'parent => ' + event + '|' + JSON.stringify(arguments);
for (var i = 0; i < this.value.length; i++) {
debugger;
var v = this.value[i];
var ob = v._bc_ob_;
if (v._bc_ob_.cid !== e.target.cid) {
ob.triggerOptions = {
exclude: [this] // 防止事件無窮回圈
}
v.selected = false;
}
}
$('#msg_1').html(JSON.stringify(this));
})
}
});
/*--------------------------*/
d_2._bc_ob_.on('change', function() {
var info = 'parent => ' + event + '|' + JSON.stringify(arguments);
alert(info);
});
function set() {
var index = Math.floor(Math.random() * d_2.length);
index = (index >= d_2.length ? (d_2.length - 1) : index);
d_2[index].selected = true;
}