2015-08-19 14 views
5

Sono nuovo di AngularJS e sto cercando di utilizzare plug-in allerta dolce da https://github.com/oitozero/ngSweetAlert, ho già aggiunto gli script corrispondenti al mio index.html come questo:aggiungere dolce allarme js angolari

index.html

<link rel="stylesheet" href="bower_components/sweetalert/dist/sweetalert.css"> 
<script src="bower_components/angular-sweetalert/SweetAlert.min.js"></script> 
<script src="bower_components/sweetalert/dist/sweetalert.min.js"></script> 

Come dice la documentazione. Ora nei miei ctrl.js ho questo:

var ctrl = function ($scope, SweetAlert) { 

    SweetAlert.swal("Here's a message"); // this does not work 
} 

ctrl.$inject = ['$scope', 'oitozero.ngSweetAlert]; 

angular.module('myApp.missolicitudes.controllers', 
    [ 
     'oitozero.ngSweetAlert' 
    ]) 
    .controller('MiSolicitudCtrl', ctrl); 

Ma non funziona, il mio browser ho ottenuto questo errore da strumenti di sviluppo:

Error: [$injector:unpr] http://errors.angularjs.org/1.4.3/ $injector/unpr?p0=oitozero.ngSweetAlertProvider%20%3C-""itozero.ngSweetAlert%20%3C-%20MiSolicitudCtrl at Error (native) at http://localhost:8081/assets/libs/angular/angular.min.js:6:416 at http://localhost:8081/assets/libs/angular/angular.min.js:40:375 at Object.d [as get] (http://localhost:8081/assets/libs/angular/angular.min.js:38:364) at http://localhost:8081/assets/libs/angular/angular.min.js:40:449 at d (http://localhost:8081/assets/libs/angular/angular.min.js:38:364) at e (http://localhost:8081/assets/libs/angular/angular.min.js:39:124) at Object.instantiate (http://localhost:8081/assets/libs/angular/angular.min.js:39:273) at $get (http://localhost:8081/assets/libs/angular/angular.min.js:80:228) at link (http://localhost:8081/assets/libs/angular/angular-route.min.js:7:268)

Come posso attuare correttamente questo plugin?

Aggiornamento 1

Ho già provare questo suggerimento di @Pankaj Parkar e @ Mike G

ctrl.$inject = ['$scope', 'oitozero.ngSweetAlert']; 

e come questo

ctrl.$inject = ['$scope', 'SweetAlert']; 

I miei strumenti di sviluppo tiri questo messaggio:

Error: [$injector:unpr] http://errors.angularjs.org/1.4.3/$injector/unpr?p0=oitozero.ngSweetAlertProvider%20%3C-"<div class="container ng-scope" ng-view="">"itozero.ngSweetAlert%20%3C-%20MiSolicitudCtrl 
at Error (native) 
at http://localhost:8081/assets/libs/angular/angular.min.js:6:416 
at http://localhost:8081/assets/libs/angular/angular.min.js:40:375 
at Object.d [as get] (http://localhost:8081/assets/libs/angular/angular.min.js:38:364) 
at http://localhost:8081/assets/libs/angular/angular.min.js:40:449 
at d (http://localhost:8081/assets/libs/angular/angular.min.js:38:364) 
at e (http://localhost:8081/assets/libs/angular/angular.min.js:39:124) 
at Object.instantiate (http://localhost:8081/assets/libs/angular/angular.min.js:39:273) 
at $get (http://localhost:8081/assets/libs/angular/angular.min.js:80:228) 
at link (http://localhost:8081/assets/libs/angular/angular-route.min.js:7:268) 

risposta

0

Non immettere mai module in controller come dipendenza. Dovresti inserire lo stabilimento SweetAlert che ha varie funzioni per mostrare gli avvisi. Aggiungere anche il valore mancante ' qoute all'iniezione di fabbrica.

Si dovrebbe usare

ctrl.$inject = ['$scope', 'SweetAlert'];//<==`oitozero.ngSweetAlert` module    
              //could be injectable inside your app module. 

Demo Plunkr

+0

Non funziona ancora –

+0

@LuisFelipeGarcia potrebbe guardato il mio answer..which aggiornato è lavorare plunkr troppo –

1

ho ottenuto il lavoro, da NON iniettarlo nel modulo.

miei ctrl.js appena ricevuto come questo

ctrl.$inject = ['$scope']; 

e dentro il mio controller y basta chiamare in questo modo

var ctrl = function ($scope) { 
    swal("Here's a message"); 
} 

e funziona !, io non so se il modo corretto ... ma almeno funziona.

+0

sua versione pura jQuery .. Se si voleva fai funzionare il tuo codice potresti guardare la mia risposta http://stackoverflow.com/a/32104508/2435473 che ti darà un'idea di come funziona .. –

3

Ecco un semplice modulo che ho scritto per far funzionare SweetAlert.

// sweetalert.js 

angular 
    .module('sweetalert', []) 
    .factory('swal', SweetAlert); 

function SweetAlert() { 
    return window.swal; 
}; 

Quindi, non è necessario utilizzare qualsiasi altra libreria per utilizzare sweetalert, è sufficiente scrivere il proprio.

Basta iniettare il modulo nel controller dove si desidera utilizzarlo.

Esempio

angular 
    .module('demo', ['sweetalert']) 
    .controller('DemoController', DemoController); 

function DemoController($scope) { 
    $scope.btnClickHandler = function() { 
    swal('Hello, World!'); 
    }; 
}; 

Ecco un esempio succo in CoffeeScript: https://gist.github.com/pranav7/d075f7cd8263159cf36a

+0

il suo funzionamento – stackMonk

1

Iniettare sweetalert.min.js e sweetalert.css. Usato come questo codice nel vostro controller

swal({ 
     type: "error", 
     title: "Error!", 
     text: "fail", 
     confirmButtonText: "OK" 
     }); 

`