Ember.js 观察Ember.computer.alias上的属性从不触发

Ember.js 观察Ember.computer.alias上的属性从不触发,ember.js,Ember.js,我正在观察searchModel,但searchInvalid从未开火。为什么会这样?还有,是否有一种方法可以观察所有searchModel属性,而不必列出它们 export default Ember.ArrayController.extend(InfiniteScroll.ControllerMixin, { needs : ['search'], searchModel: Ember.computed.alias("controllers.search.model"),

我正在观察searchModel,但searchInvalid从未开火。为什么会这样?还有,是否有一种方法可以观察所有searchModel属性,而不必列出它们

export default Ember.ArrayController.extend(InfiniteScroll.ControllerMixin, {
    needs : ['search'],
    searchModel: Ember.computed.alias("controllers.search.model"),

    searchInvalid : function() {
        this.transitionToRoute('search');
    }.observes( 'searchModel.sortColumn', 'searchModel.sortDirection', 'searchModel.loadNumber',
                'searchModel.vehicleRegistration', 'searchModel.driverName', 'searchModel.site',
                'searchModel.fromPlanDate','searchModel.toPlanDate'), //is there a way to watch the entire model?

    perPage: 25,
    page : 1

});
更新


我只是通过使用以下语法来实现这一点:

searchModelBinding: "controllers.search.model",
  • 为什么这样做有效,但上面的不起作用
  • 我还不清楚如何观察模型上的所有属性

  • 余烬不会观察到从未获取的属性。这有点奇怪,但这是一个有点不可靠的延迟加载概念

    export default Ember.ArrayController.extend(InfiniteScroll.ControllerMixin, {
        foo: function(){
          this.get('searchModel'); // prime the engines.
        }.on('init'), 
        needs : ['search'],
        searchModel: Ember.computed.alias("controllers.search.model"),
    
        searchInvalid : function() {
            this.transitionToRoute('search');
        }.observes( 'searchModel.sortColumn', 'searchModel.sortDirection', 'searchModel.loadNumber',
                    'searchModel.vehicleRegistration', 'searchModel.driverName', 'searchModel.site',
                    'searchModel.fromPlanDate','searchModel.toPlanDate'), //is there a way to watch the entire model?
    
        perPage: 25,
        page : 1
    
    }); 
    
    不,没有任何方法可以看到模型上的每一个项目