2017-09-21 17 views
0

現在、Bootbox/Bootstrapモーダルに表示する.JSONデータが必要なプロジェクトに取り組んでいます。JSONデータをBootboxモーダルにロード

この私の現在のHTMLは次のようになります。ここでは

<div id="myModal" class="modal fade"> 
    <div class="modal-dialog"> 
    <div class="modal-content"> 
     <!-- dialog body --> 
     <div class="modal-body"> 
     <button type="button" class="close" data-dismiss="modal">&times;</button> 
     </div> 
     <!-- dialog buttons --> 
     <div class="modal-footer"> 
     <button type="button" class="btn add-to-cart">ADD TO CART</button> 
     </div> 
    </div> 
    </div> 
</div> 

が私の現在のJSファイルされる:モーダルがうまく働いている、それが表示されないデータそのもの

var _modalData = function() { 
    $('.item').click(function(e) { 

    $('#myModal').on("show", function() { 
     $('#myModal button.btn').on("click", function(e) { 
     $('#myModal').modal('hide'); 
     }); 
    }); 

    $('#myModal').on("hide", function() { 
     $('#myModal button.btn').off("click"); 
    }); 

    $('#myModal').modal({ 
     "backdrop" : "static", 
     "keyboard" : true, 
     "show"  : true 
    }); 

    $.each(_itemData, function(idx, it){ 
     if(currentItemID === it.id){ 
     var det = '<div><h2 class="Product">' + it.itemName + '</h2><h4 class="Price">' + it.itemPrice + '</h4><p class="Description">' + it.itemDescription + '</p></div><img src="' + it.itemImage + '">'; 
     $(".modal-body").html(det); 
     } 
    }); 
    }) 
} 

ですモーダルで。これはBootboxのcustom dialog機能を使用しています

var _modalData = function() { 
    $('.item').on('click', function(e) { 

    var list = $('<div class="product-list"></div>'); 

    $.each(_itemData, function(idx, it){ 
     if(currentItemID === it.id){ 
     var det = '<div><h2 class="Product">' + it.itemName + '</h2><h4 class="Price">' + it.itemPrice + '</h4><p class="Description">' + it.itemDescription + '</p></div><img src="' + it.itemImage + '">'; 
     det.appendTo(list); 
     } 
    }); 

    var dialog = bootbox.dialog({ 
     title: 'Select Product', 
     message: list, 
     buttons: { 
      addToCart: { 
       label: 'Add to Cart', 
       className: 'btn-primary', 
       callback: function(){ 
        // do something here 
       } 
      } 
     } 
    }); 
    }) 
} 

:あなたはこのBootboxタグを付けたので

+0

いくつかのメモ - モーダルを隠すときは、ボタンからクリックハンドラを削除する必要はありません。 _itemDataとcurrentItemはJSファイルには含まれていないので、スコープの範囲を知ることは難しいです。コンソールにエラーが記録されていませんか? – bob0the0mighty

+0

var _itemData = {}; var currentItemID = $(this).attr( 'id');これらは私のコードの中にあります。私はそれらを含んでいませんでした。私はエラーがありません –

+0

_itemDataの値を更新しますか? – bob0the0mighty

答えて

0

は、ここにあなたが何をしようとしての(IMO)簡易版です。プロダクトのリストを構築し、それをダイアログのメッセージ(コンテンツ)として使用することができます。あなたはそのボタンのコールバックであなたの 'カートに追加'ボタンがしたいものを何でも処理します。モーダルを閉じたくない場合は、return falseをコールバックの最後の行として追加します。

このルートに行くと、今使っているダイアログマークアップは必要ありません.Bootboxは独自のものを生成します。

+0

ダイアログボックスに製品の情報を表示する方法はありますか?新しいコードで作業しているのは、Select Productだけです。リストはまだ表示されません。 –

+0

@KatieRoberts私の答えはあなたの質問が提供するものに基づいています。私は実際にあなたのコメントから質問に答えることができません。 –

関連する問題