我正在尝试将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);
        }
    }
});

最佳答案

正确的位置是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'
  }
});

09-18 04:10