Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问其';各自的控制器?_Javascript_Ember.js - Fatal编程技术网

Javascript 如何访问其';各自的控制器?

Javascript 如何访问其';各自的控制器?,javascript,ember.js,Javascript,Ember.js,我试图在Ember中创建某种搜索功能,但在将输入字段的值传递给控制器进行处理时遇到了一些问题 这就是我所拥有的 App.ApplicationController = Ember.Controller.extend({ actions: { handle_search: function() { var search_text = this.get('controllers.search_text'); console.lo

我试图在Ember中创建某种搜索功能,但在将输入字段的值传递给控制器进行处理时遇到了一些问题

这就是我所拥有的

App.ApplicationController = Ember.Controller.extend({
    actions: {
        handle_search: function() {
            var search_text = this.get('controllers.search_text');
            console.log(search_text);
        }
    }
});
这就是我在模板中看到的

                <span class="input-group-addon"><i class="fa fa-search"></i></span>
                {{input type="text" valueBinding=search_text class="form-control" placeholder="Search..."}}

                <span class="input-group-btn">
                    <button {{action 'handle_search'}} class="btn btn-default" type="button">Search</button>
                </span>
所以我也尝试了
value
而不是
valueBinding
this.controller.get('search_text'),而不是
this.get('controllers.search_text')`我得到了这个错误

未捕获类型错误:无法读取未定义应用程序的属性“get”。js:127


那么,如何访问在模板中设置的控制器中的值呢?
search\u text
变量只是我在模板中创建的某个名称,因此我可以尝试访问控制器上的输入值。

属性就在控制器上,因此您可以使用
this.get('foo')

只有当您使用属性名称的文本版本绑定到属性时,才应使用valueBinding,例如
valueBinding='foo'
。如果要直接绑定到属性,只需执行
value=foo

 {{input type="text" value=search_text class="form-control" placeholder="Search..."}}

App.ApplicationController = Ember.Controller.extend({
    actions: {
        handle_search: function() {
            var search_text = this.get('search_text');
            console.log(search_text);
        }
    }
});
 {{input type="text" value=search_text class="form-control" placeholder="Search..."}}