3
КомпонентGoogle Места автозаполнения не появляется
import Ember from 'ember';
export default Ember.TextField.extend({
type: 'text',
didInsertElement: function() {
this.$().addClass("form-control");
var autocomplete = new google.maps.places.Autocomplete(
(document.getElementById('autocomplete')),{types:['geocode']} //trying without jQuery, but still.
);
}});
Шаблон
{{gp-textfield id="autocomplete"}}
, который оказывает
<input id="autocomplete" type="text" class="ember-view ember-text-field form-control" placeholder="Enter a location" autocomplete="off">
, но до сих пор, я получаю:
InvalidValueError: not an instance of HTMLInputElement
Любая помощь была бы действительно оценена.
EDIT: Ember 2,6
вычистил код немного, без толка
didInsertElement: function() {
this.$().addClass("form-control");
var element = document.getElementById('autocomplete');
var autocomplete = new google.maps.places.Autocomplete(element);
}
Не решение вашей проблемы, но вы можете использовать свойства класса ["classNames"] (http://emberjs.com/api/classes/Ember.Component.html#property_classNames) для указания имен классов для компонент. Он также свяжет их с именами классов родительского класса и любыми классами, указанными в шаблоне атрибутом 'class'. – akst
Также он может быть связан с проблемой, но вместо переопределения didInsertElement я бы рекомендовал определить новый метод, но определите его как 'Ember.on ('didElementInsert',)', он все равно будет работать на вставляем, но не переопределяя метод didInsertElement в родительских классах, альтернативно вы можете вызвать this._super (аргументы) в начале функции, но я чувствую, что первое является более аккуратным. –
akst
Дополнительная информация о переопределении ['didInsertElement'] (https://guides.emberjs.com/v2.6.0/components/the-component-lifecycle/#toc_integrating-with-third-party-libraries-with-code-didinsertelement- код), больше на ['Ember.on'] (http://emberjs.com/api/classes/Function.html#method_on) – akst