Ich möchte die Bildquelle an das folgende div binden.
<div class="head_label"><img class="bank_photo" data-bind="attr:{src: bankImage}"></div>
Es folgt mein Ajax-Aufruf und ihre Variable, die ich an image src binden möchte.
define(
[
'jquery',
'ko',
'Magento_Checkout/js/view/payment/default',
'Magento_Payment/js/view/payment/cc-form',
'Magento_Payment/js/model/credit-card-validation/validator',
'mage/validation'
],
function ($, ko, Component) {
'use strict';
var bankImage = '';
return Component.extend({
defaults: {
template: 'Nitesh_Payment/payment/form',
transactionResult: ''
},
ajaxCall: function(){
$('#input-cc-number').blur(function(){
var cc = $(this).val();
var cc_length = cc.length;
if(cc_length>=6){
var data= {cc:cc}
$.ajax({
dataType: 'json',
url: url,
data: data,
type: 'post',
success: function(result)
{
var myObj = result;
this.bankImage = myObj.image;
},
error: function(){
alert("You Failed!");
}
});
}
});
},
});
}
);
Außerdem kann ich im Ajax-Aufruf nicht auf die Variable bankImage zugreifen. Bitte sagen Sie mir, wie ich in der Ajax-Funktion auf diese Variable zugreifen kann.
magento2
knockoutjs
Nitesh
quelle
quelle
Antworten:
Fügen Sie zunächst Ihre Variable zum Standardobjekt hinzu, und Sie können den Standardwert für das Feld festlegen.
Definieren Sie Ihre Variable als beobachtbar
Und Sie müssen den richtigen Erfolgshandler mit Komponentenkontext definieren:
quelle
HTML
<img id="bankImage" class="bank_photo" src="">
Und in Erfolgsfunktion hinzugefügt ->
$('#bankImage').attr('src',result.image);
Mein Problem gelöst
quelle