用ember不起作用的JavaScript添加或更改JSON键的值



在.hbs文件中,我正在尝试打开一个弹出窗口并使用包含的代码。

template.hbs

{{#each adultJsonArr as |adultTravellerDetails index|}}
    {{my-s3-uploader class = 'uploader-button'}}
    <div class="mdl-cell mdl-cell-6-col ">
        {{#if (eq adultTravellerDetails.id_update_status 'available')}}
            <p>UPDATE ID Proof</p>
        {{/if}}
        {{#if (eq adultTravellerDetails.id_update_status 'never_added')}}
            <p>ADD ID Proof</p>
        {{/if}}
    </div>
{{/each}}

因此,现在我尝试使用诸如this.adultJsonArr[0].id_update_status = 'updated'之类的内容在相应的JS文件中更改ID_UPDATE_STATUS的值,因此它无法正常工作。相反,如果我尝试更改任何其他属性,它可以像this.adultJsonArr[0].id_update_status_check = 'Is it working?'一样起作用。基本上,就像弹出窗口第4和第7行中未使用的JSON属性可以更新,但可以使用一个。

component.js

importToCrs(response,uploadResponse){
     let file_path = $(uploadResponse).find('Location').html().toString();
     if( this.get('choice')=="adult"){
         this.adultJsonArr[this.get('choiceId')].traveller_id_proof_link = file_path ;
         this.adultJsonArr[this.get('choiceId')].id_update_status = 'updating' ;
     }
}
更新traveller_id_proof_link正在工作,但id_update_status不起作用。如何处理?

嗨,你能告诉我您如何初始化成人jonarr吗?可能是因为数组中的内容可能不是Ember对象。我认为也应该用setter对其进行更新。

可能会尝试以下方法:

this.get('adultJsonArr').objectAt(this.get('choiceId')).set('traveller_id_proof_link', 'updated');

最新更新