コントローラの削除ボタンに以下のコードがあります。
$scope.removes = function (scope) {
toastr.success("Delete all?","<br /><br /><button type='button' class='btn clear'>Yes</button>",{
closeButton: false,
onClick: function(){
var nodeData = scope.$modelValue;
if(nodeData.nodes.length > 0){
toastr.error('Cant delete Sub levels available :', 'Warning', {
closeButton: true
});
}else{
mainMenuService.deleteData(nodeData).success(function(data) {
scope.remove();
toastr.success(data.message, 'Message', {
closeButton: true
});
}).error(function(err) {
toastr.error(err, 'Warning', {
closeButton: true
});
});
}
}
})
}
確認ダイアログボックスを表示し、[はい]ボタンをクリックして使用する場合は削除したい。しかし、toastrメッセージにボタンが表示されず、その方法がわかりません。ドキュメントとまったく同じように実行しました。そして、確認メッセージに2つのボタンを入れることができるかどうか知りたいですか?
誰かがAngularソリューションを求めていないが、ここで基本に戻ると、本当に簡単です。
toastr.success("<br /><br /><button type='button' id='confirmationRevertYes' class='btn clear'>Yes</button>",'delete item?',
{
closeButton: false,
allowHtml: true,
onShown: function (toast) {
$("#confirmationRevertYes").click(function(){
console.log('clicked yes');
});
}
});
まず、次のようにtoastrのallowHtml: true
オプションを設定する必要があります。
$scope.removes = function (scope) {
toastr.success("<br /><br /><button type='button' class='btn clear'>Yes</button>",'delete item?',
{
closeButton: false,
allowHtml: true,
...
})
}
また、toastr Titleは2番目の引数であり、contentは最初の引数です。
Angular Toastr を使用していると思います。その場合、最初にonClick
イベントがないことを知っておく必要があります。onTap
は次の場合にトリガーされるイベントです。 toastrをクリックします。ただし、toastrの任意の場所をクリックするとトリガーされます。
toastr.success("Content",'Title',
{
onTap: function(){
//Triggers when you click any where on toastr
},
...
});
したがって、ボタンがクリックされたときにトリガーされるイベントが必要だと思います。その場合、セキュリティ上の理由から、Angular Toastrがコンテンツまたはタイトル部分のデュオのディレクティブを受け入れることができない限り、必要です。次のように、toastrのonShow
イベント内のボタンにクリックイベントをアタッチするには:
$scope.yes = function() {
alert("You Clicked Yes!!!");
}
var html = "<br /><br /><button type='button' class='btn clear'>Yes</button>";
toastr.success(html,'Are You Sure?',
{
allowHtml: true,
onShown: function (toast) {
angular.element( toast.el[0]).find("button")[0].onclick = $scope.yes;
}
});
プランカー でサンプルを組み立てました
お役に立てれば
toastr.warning("<br /><button type='button' value='yes'>Yes</button><button type='button' value='no' >No</button>",'Are you sure you want to delete this item?',
{
allowHtml: true,
onclick: function (toast) {
value = toast.target.value
if (value == 'yes') {
console.log(toast.target.value, 'carai')
}
}
})