我正在尝试将typeahead附加到我的模板之一中的文本输入上。因为使用Ember的把手,所以jQuery的文档就绪功能不是预定义输入的地方。放置“模板就绪”代码的适当位置在哪里?我尝试了一个 Controller ,但预先输入没有任何响应。我认为模板尚未呈现。
App.PersonController = Ember.ObjectController.extend({
isEditing: false,
init: function(){
this._super();
$('.example-films .typeaheadcx').typeahead([{
name: 'best-picture-winners',
remote: 'http://twitter.github.io/typeahead.js/data/films/queries/%QUERY.json',
prefetch: 'http://twitter.github.io/typeahead.js/data/films/post_1960.json',
template: '<p><strong>{{value}}</strong> – {{year}}</p>',
engine: Ember.Handlebars
}]);
},
actions: {
edit: function() {
this.set('isEditing', true);
},
doneEditing: function() {
this.set('isEditing', false);
}
}
});
最佳答案
正确的位置是didInsertElement
的Ember.View
。
例如:
模板
<script type="text/x-handlebars" data-template-name="foo">
Hello world
</script>
查看
App.FooView = Ember.View.extend({
templateName: 'foo',
didInsertElement: function() {
console.log(this.$().text()); // will log 'hello world'
}
});