Ember.js 渲染中视图中的访问控制器
我有这样的看法:Ember.js 渲染中视图中的访问控制器,ember.js,Ember.js,我有这样的看法: App.AbilityFilter = Ember.TextField.extend({ classNames: ['span3'], keyUp: function(evt) { this.get('controller').send('filterAbilities','text'); }, placeholder:'Search abilities' }); <script type="text/x-handleba
App.AbilityFilter = Ember.TextField.extend({
classNames: ['span3'],
keyUp: function(evt) {
this.get('controller').send('filterAbilities','text');
},
placeholder:'Search abilities'
});
<script type="text/x-handlebars" data-template-name="abilities">
{{view App.AbilityFilter}}
<div class="accordion" id="abilities">
{{#each ability in model}}
<div class="accordion-group">
{{ability.name}}
</div>
{{/each}}
</div>
</script>
{{render 'abilities'}}
这是渲染的一部分,如下所示:
App.AbilityFilter = Ember.TextField.extend({
classNames: ['span3'],
keyUp: function(evt) {
this.get('controller').send('filterAbilities','text');
},
placeholder:'Search abilities'
});
<script type="text/x-handlebars" data-template-name="abilities">
{{view App.AbilityFilter}}
<div class="accordion" id="abilities">
{{#each ability in model}}
<div class="accordion-group">
{{ability.name}}
</div>
{{/each}}
</div>
</script>
{{render 'abilities'}}
我遇到的问题是事件,或者更确切地说是行动。keyUp事件激发得非常好,但由于某些原因,它不会传递给控制器
我已尝试根据将过滤能力添加到应用程序能力控制器
和应用程序索引路由
上的操作哈希中。根据,视图应该是Capabilities controller的一部分,因为这是其父级的上下文,但它不起作用
我已经做了一些测试,它几乎像是这个。get('controller')
根本没有获取控制器。我有点不知道是什么引起了这个问题。这段代码在几年前就开始工作了,但我一升级到1.0它就坏了
我在这里要做的是过滤能力列表。如果再也不是这样了,请告诉我!任何帮助都将不胜感激。谢谢 Ember.TextField
和Ember.TextArea
不再是简单的视图,而是Ember.Component
的子类,这意味着this.get('controller')
不再引用视图控制器
但是有一个不同的变量,它确实包含对周围控制器的引用,这就是this.get('targetObject')
。因此,您应该将操作发送到targetObject
:
App.AbilityFilter = Ember.TextField.extend({
classNames: ['span3'],
keyUp: function(evt) {
this.get('targetObject').send('filterAbilities','text');
},
placeholder:'Search abilities'
});
希望有帮助。非常感谢您!我刚刚从余烬扩展了视图。改为视图!!