Javascript 如何访问其';各自的控制器?
我试图在Ember中创建某种搜索功能,但在将输入字段的值传递给控制器进行处理时遇到了一些问题 这就是我所拥有的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
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..."}}