2014-09-18 11 views
19

Nuovo per angularjs. Vuoi scrivere un'espressione in un ng-clic.Usa avviso da ng-clic di una direttiva

esempio:

x.directive('li',function(){ 
    return { 
     restrict: 'E', 
     replace: true, 
     template: '<games> <game ng-click="(alert({{ game }})" ng-repeat="game in games"> {{ game.team1 }} {{game.bets }} <game></br></games> ' 
    }  
}); 

Voglio avvisare il gioco su clic, ma ho ottenuto questo errore:

Error: [$parse:syntax] Syntax Error: Token 'game' is unexpected, expecting [:] at column 11 of the expression [(alert({{ game }})] starting at [game }})]. 
+0

prova ng clic = "console.log (gioco)" – harishr

+0

non ha funzionato @HarishR –

risposta

41

Quando si chiede di 'alert' da NG-click, sembra per questo metodo su $ scope, e non c'è.

Vedere questo plunkr dove ho usato una funzione sull'oscilloscopio per chiamare l'avviso quando si fa clic sulla direttiva.

Nel controllore si impostare la funzione:

$scope.test = function(text) { 
    alert(text); 
} 

oppure si può semplicemente fare: $scope.alert = alert.bind(window);. Non funzionerà senza legare il contesto alla finestra se lo fai in quel modo.

Nel della direttiva ng clic che noi chiamiamo la nostra funzione:

ng-click="test(game)" 
+0

l'allarme funziona veramente, quando fai clic sul testo "test" (che è dove il ng-clic è posizionato " –

+2

+1 per il tuo tempo ma questo non è quello che ti ho chiesto." –

+1

per favore chiarisci cosa ti serve. vuoi avvisare una variabile con ng-clic dal modello, il modello sta funzionando bene, è necessario rimuovere le parentesi graffe e io consiglio di creare una funzione per eseguire l'avviso, e basta chiamare la funzione dal clic del modello, come nel plunkr . rivedere il plunkr per favore e chiedere se qualcosa non è chiaro –

Problemi correlati