2015-05-20 5 views
6

Io uso semantico-ui nel mio progetto, il pulgin è casella
qualcuno dire se l'uso jQ plug-in, è necessario utilizzare nella direttiva angolare
ma non funzionacome usare il plugin jQuery (semantic-ui) nella direttiva angularJS?

la casella di impostazione semantica-ui nel documento API semantico-ui, è necessario impostare questo per init casella

$('.ui.checkbox').checkbox(); 

provo a cambiare a angolare in questo modo:

app.html

<div class="ui animate list"> 
    <div class="item ui toggle checkbox" todo-checkbox ng-repeat="item in day track by $index"> 
    <input type="checkbox"> 
    <label ng-bind="item.content"></label> 
    </div> 
</div> 

e questa è la direttiva in angularjs file di

todoApp.directive('todoCheckbox', function() { 
    return { 
    restrict: 'A', 
    link: function(scope, elem, attrs) { 
     $(elem).checkbox(); 
    } 
    }; 
}); 

ma non funziona nel mio progetto. Perché?

+0

@StanislavKralin le tue modifiche potrebbero essere ricevute meglio se hai spiegato, in y il nostro riepilogo di modifica, * perché * stai rimuovendo il tag. È chiaro dal diff che si rimuove il tag. –

risposta

1

Sei vicino. elem è l'elemento della direttiva. In questo caso è

<div class="item ui toggle checkbox" todo-checkbox ng-repeat="item in day track by $index"> 
    <input type="checkbox"> 
    <label ng-bind="item.content"></label> 
</div> 

Ora, se usiamo find per aiutarci a individuare il campo di inserimento all'interno del elem, allora possiamo selezionare il campo di input ed eseguire il metodo checkbox.

todoApp.directive('todoCheckbox', function() { 
    return { 
    restrict: 'A', 
    link: function(scope, elem, attrs) { 
     angular.forEach(elem.find("input"), function(inputField) { 
     inputField.checkbox(); 
     } 
    } 
    }; 
}); 
+0

ma nel documento semantico-ui api, si dice – nataila

+0

Il tuo messaggio è stato interrotto. Puoi postare di nuovo? Sono felice di aiutarti a risolvere il tuo problema. – jason328

+0

Non funziona con il tuo metodo, in API officlal, la 'checkbox()' è legata sull'elemento '.ui.checkbox', penso che il problema non sia il numero vincolante di – nataila

0

Un po 'in ritardo alla festa, ma si dovrebbe essere in grado di spostare solo il todo-checkbox al input tag (stesso con gli attributi specifici ui semantica)

0

Prova

angular.element(elem).checkbox(); 

invece di

$(elem).checkbox();