我試圖爲我的應用程序創建一個可重用的typeahead組件(?)。我正在使用twitter's typeahead JavaScript庫,並試圖創建一個自定義組件/視圖。ember.js自定義組件或視圖
我想能夠定義的預輸入我的模板,像這樣:
{{view App.TypeAhead name=ta_name1 prefretch=prefetch1 template=template1 valueHolder=ta_value1}}
我想這些變量將位於控制器:
App.ApplicationController = Ember.Controller.extend({
ta_name1: 'movies',
prefetch1: '../js/stubs/post_1960.json',
template1: '<p><strong>{{value}}</strong> - {{year}}</p>',
ta_value1: null
});
我不知道我需要用什麼來實現這個,一個組件或一個視圖。我會想象它會東西這樣。
App.Typeahead = Ember.View.extend({
templateName: 'typeahead',
didInsertElement: function() {
$('.typeahead').typeahead([{
name: this.getName(),
prefetch: this.getPrefetch(),
template: this.getTemplate(),
engine: Hogan,
limit: 10
}]);
$('.typeahead').on('typeahead:selected', function(datum) {
this.set('controllers.current.' + this.getValueHolder()), datum);
});
}
});
有了這樣
<script type="text/x-handlebars" data-template-name='typeahead'>
<input class="typeahead" type="text">
</script>
我不知道如何從jQuery類選擇離開的模板。事實上,我將在表格上有一個以上的類型,所以這個類別選擇不會削減它。
我也不知道如何從視圖中的控制器獲取值。顯然getPrefetch()
,getTemplate()
,getValueHolder()
等方法不存在。
我知道這是一個僞代碼的TON,但希望我能指出正確的方向。
真棒項目!書籤。我一定會看看你的實現。萬分感謝! – David
不確定這個答案是否真的回答你的問題。它只能爲你提供解決方案,但沒有關於如何解決Ember的問題。 –