Ember.js 如何在使用emberjs初始化后集中精力?

Ember.js 如何在使用emberjs初始化后集中精力?,ember.js,Ember.js,我是新加入Ember.js的。 我想在初始化之后关注TextField(在示例中,id=“text”), 但在ready函数中,聚焦方法不起作用 !window.jQuery&&document.write(unescape(“%3Cscript src=”js/libs/jQuery-1.6.1.min.js”%3E%3C/script%3E')) {{view Em.TextField id=“text”}}//要对其进行聚焦。 var App=Em.Application.create(

我是新加入Ember.js的。 我想在初始化之后关注TextField(在示例中,id=“text”), 但在ready函数中,聚焦方法不起作用


!window.jQuery&&document.write(unescape(“%3Cscript src=”js/libs/jQuery-1.6.1.min.js”%3E%3C/script%3E'))
{{view Em.TextField id=“text”}}//要对其进行聚焦。
var App=Em.Application.create();
App.ready=函数(){
$('#text').focus();//不起作用。
}

以下代码确实有效:


{{view App.TextField id=“text”}}//要对其进行聚焦。
var App=Em.Application.create();
App.TextField=Em.TextField.extend({
didInsertElement:函数(){
这个。$().focus();
}
});

子类化
文本字段
,然后在模板周围传播一个自定义
视图
,对我来说似乎有点混乱,因此我编写了这个1kb的小程序包,让您可以更优雅地直接在模板中执行此操作,而无需进一步编码:

<body>
  <!-- all the libraries -->
  <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
  <script src="http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.3.0/handlebars.min.js"></script>
  <script src="http://cdnjs.cloudflare.com/ajax/libs/ember.js/1.2.0/ember.min.js"></script>
  <script src="http://rawgithub.com/AndreasPizsa/ember-autofocus/master/dist/ember-autofocus.min.js"></script>
  <!-- your template -->
  <script type="text/x-handlebars">
    Hello, world! {{ input }}
    :
    : more elements here
    :
    {{ autofocus }} {# <<<<-- Magic happens here #}
  </script>
  <!-- your app -->
  <script>
    Ember.Application.create();
  </script>
</body>

你好,世界!{{input}}
:
:这里有更多元素
:

{{autofocus}}{#另请参阅关于HTML5的解决方案。是否有一种优雅的方法来实现这一点?我不这么认为,因为视图是在幕后为您创建的。您可以使用JQuery访问DOM元素,但它远不是优雅的。。。