在view Ember.js中调用控制器方法

在view Ember.js中调用控制器方法,ember.js,controller,Ember.js,Controller,我在余烬中有一个控制器,如下所示: App.TasksController = Ember.ArrayController.extend({ search: function(term){ ... } }) 我有相对视图,带有一个自定义文本字段,例如: App.TasksView = Ember.View.extend({ searchField: Ember.TextField.extend({ keyUp: function(){ this.get('con

我在余烬中有一个控制器,如下所示:

App.TasksController = Ember.ArrayController.extend({
    search: function(term){ ... }
})
我有相对视图,带有一个自定义文本字段,例如:

App.TasksView = Ember.View.extend({
    searchField: Ember.TextField.extend({
        keyUp: function(){ this.get('controller').search() }
    })
})
然而,我得到一个错误,说没有这样的方法

我想知道:

  • 如何从视图中正确调用控制器中定义的方法
  • 如何调试当前处于活动状态的控制器?如果我
    console.log(this.get('controller'))
    我得到了一个对象,但是导航和准确理解哪个控制器是非常混乱的

  • 文本字段上的这个范围与tasksview的范围不同,因此它没有访问控制器的权限

    老实说,更好的处理方法是将textfield值绑定到某个对象,并向其添加一个观察者。当它发生变化时,启动一个搜索(或者更好的做法是取消对它的缓冲,这样您就不会对它们键入的每个字符都发出请求)


    文本字段上的该范围与tasksview的范围不同,因此它无法访问控制器

    老实说,更好的处理方法是将textfield值绑定到某个对象,并向其添加一个观察者。当它发生变化时,启动一个搜索(或者更好的做法是取消对它的缓冲,这样您就不会对它们键入的每个字符都发出请求)


    谢谢,这让我走得更远。第二个问题的答案是什么?如何正确调试正在发生的事情?Console.logging返回非常混乱的对象,如何消除它们之间的歧义?Ember inspector工作得非常好,另外查看构造函数通常有助于确定您正在查看的对象的类型,proto也有帮助。我最终实现了我想要的,但问题是:在这种情况下,我有没有办法访问控制器?我能把背景介绍一下吗?谢谢,这让我更进一步。第二个问题的答案是什么?如何正确调试正在发生的事情?Console.logging返回非常混乱的对象,如何消除它们之间的歧义?Ember inspector工作得非常好,另外查看构造函数通常有助于确定您正在查看的对象的类型,proto也有帮助。我最终实现了我想要的,但问题是:在这种情况下,我有没有办法访问控制器?我能把上下文传递一下吗,或者类似的东西?