在.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}}
&#13;
所以,现在我尝试使用像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' ;
}
}
&#13;
答案 0 :(得分:3)
你能告诉我你是如何初始化adultJsonArr的吗? 可能是因为数组内的内容可能不是ember对象。 它也应该用我认为的setter进行更新。
可以试试这个:
this.get('adultJsonArr').objectAt(this.get('choiceId')).set('traveller_id_proof_link', 'updated');