I have a method inside a typescript class that just looks like this
var confirmation = confirm("Run Agent Job?");
if (confirmation) {
console.log('yes');
} else {
console.log('no');
}
I'm trying to convert this to use Sweet Alert, so inside the method I just put this. But Typescript doesn't recognize this It throws a Cannot find name swal
swal("hello");
I have imported sweet alert as follows
<link href="~/Content/css/sweetalert.css" rel="stylesheet" />
<script src="~/Scripts/sweetalert.min.js"></script>
What am I doing wrong? If I try to use swal()
in just a plain *.js
file, it'll work fine. It's only when it's in a *.ts
file.
I got it to work with typescript the following way. In the top of your .ts
file use:
import * as swal from 'sweetalert';
Then use the function like this
swal({
title: "Are you sure?",
text: "You will not be able to undo this action",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, delete it!",
closeOnConfirm: true
},
confirmed => {
if(confirmed) {
// Do what ever when the user click on the 'Yes, delete it' button
}
});
You can find more examples in the docs.
I installed the sweetalert
package the via npm
npm install sweetalert --save
and the typings
// the old way
typings install dt~sweetalert --save --global
// new way
npm install --save @types/sweetalert
After this, make sure you have included the js and the css file in your index.html.
If you get the following error
swal(..) is not a function
then you have not included the js file properly.
You can add the following to your aurelia.json
.
{
"name": "sweetalert",
"path": "../node_modules/sweetalert",
"main": "dist/sweetalert.min",
"resources": [
"dist/sweetalert.css"
]
},
and in app.html use
<require from="sweetalert/dist/sweetalert.css"></require>