在 .hbs 文件中,我尝试打开一个弹出窗口并使用包含 .
模板.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 itworking?'
一样工作。它基本上就像弹出窗口中第 4 行和第 7 行未使用的 json 属性可以更新,但正在使用的属性则不能更新。
组件.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' ;
}
}
最佳答案
你好,你能告诉我你是如何初始化adultJsonArr的吗? 这可能是因为数组内的内容可能不是 ember 对象。 我认为它还应该使用 setter 进行更新。
可以尝试这个:
this.get('adultJsonArr').objectAt(this.get('choiceId')).set('traveller_id_proof_link', 'updated');
关于javascript - 在 ember 中使用 javascript 添加或更改 JSON 键的值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49601553/