3

我正在尝试将一个预先输入附加到我的一个模板中的文本输入中。因为Ember 使用了handlebars,所以jQuery 的document ready 函数不是typeahead 定义的地方。放置“模板就绪”代码的合适位置在哪里?我尝试了一个控制器,但预输入没有响应。我认为模板尚未渲染。

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);
        }
    }
});
4

1 回答 1

5

正确的地方didInsertElementEmber.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'
  }
});
于 2013-10-27T14:50:23.640 回答