Domanda

Sto usando scelto () per implementare la mia casella a discesa.

Nella mia home page, ho impostato la casella a discesa come con il seguente codice

//Code in home template
.bookmark_questions
  %select
    %option{value: "xxxx"} xxxxxx
    %option{value: "xxxx"} xxxxxx
    %option{value: "xxxx"} xxxxxx
    %option{value: "xxxx"} xxxxxx

//Code in home view
render: ->
  $(@el).html @template()
  @$('select').chosen()
  @
.

Nella mia vista a casa, cerco di attivare scelto da "@$('select').chosen()", tuttavia quando provo a eseguire il codice, ottengo il seguente errore

.

questo.search_field [0] è indefinito

Inserisci Descrizione dell'immagine qui

Qual è il modo giusto per attivare scelti per il mio caso?

È stato utile?

Soluzione

So che questo è piuttosto vecchio, ma ho appena avuto quasi lo stesso problema e ciò che fissava il problema è stato in attesa di chiamare il plugin fino a quando i select sono stati collegati al DOM.

Altri suggerimenti

Backbone potrebbe chiamare render() Prima che il DOM sia pronto, al momento della media, chosen non riesce a trovare l'elemento che specifica.Ecco la mia soluzione:

In primo luogo, aggiungi un blocco Dom Ready all'estremità del file Coffee / JS, il livello superiore.

$ ->
  $('.bookmark_questions select').chosen()
.

Quindi lascia indietro il backbone.View Tell chosen per aggiornare gli elementi mentre la vista è pronta

render: ->
  @$el.trigger('liszt:updated')
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top