2

私は次のようなマップを持っています:

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);

しかし、'{sites} change' 関数は起動しません。理由はありますか?ありがとう!

4

2 に答える 2