我有一个地图,像这样:变化事件
var AppState = can.Map.extend({
sites: null
});
appstate = new AppState();
列表被填充像这样:
Site.findAll({}, function(sites) {
appstate.attr('sites', sites);
});
我传递给这样的控制:
new SummaryCtrl("#summaryCtrl", {sites:appstate.compute('sites')});
控件看起来像这样:
var SummaryCtrl = can.Control.extend({
'{sites} change': function(ev, type, sites) { //this doesn't fire
var recent = sites.slice(0,25);
var siteCount = sites.length;
this.element.html(can.view('summaryTpl', {siteCount:siteCount, recent:recent}));
}
});
那么我这样做:
var newsite = {blah1:'blahblah', blah2:'blahblah'};
appstate.sites.unshift(newsite);
但 '{}网站变' 功能不火。任何想法为什么?谢谢!
这是一个jsfiddle,sitecount应该是2,而不是1:http://jsfiddle.net/c7tdma5k/6/ – 2014-10-30 12:44:28