我有以下问题。
在函数中,我有一个承诺作为返回类型。此函数位于Hierarchy类中。
<body>
This game(s) belongs to you:
<ul>
{% for title in titles %}
<li>{{title}}</li>
{% endfor %}
</ul>
</body>
此功能在类节点中。
updateNodeValues(entity: String, data: {}): Promise<any>{
let jsonBody = JSON.stringify(data);
let url = environment.endpointCore + '/api/' + entity + '/' + data['id'];
return this.http.put(url, jsonBody, this.options)
.toPromise()
.then(response => {
return response;
})
.catch(this.handleError);
}
问题在于,当我尝试解决承诺并调用onSubmit(): void{
var currentForm = this.form.value;
var entityName = this.inflection.classify(this.node.type).toLowerCase();
var requiredData = {};
for(var i = 0; i < this.formItems.length; i++){
this.formItems[i].value = currentForm[Object.keys(currentForm)[i]];
}
for(var i=0; i<this.formItems.length; i++){
requiredData[this.globalService.camelize(this.formItems[i].label)] = this.formItems[i].value
}
Promise.resolve(this.hierarchyService.updateNodeValues(entityName, requiredData)).then(response => {
alert(response.ok);
if(response.ok){
this.globalService.showSuccessMessage('Values updated');
this.refreshGui(requiredData);
}
});
this.editMode = false;
}
时,没有任何事情发生。我已经读过胖箭如何保留这个'上下文',我不明白为什么调用这个方法没有做任何事情,而调用this.refreshGui(requireddata)
会产生预期的结果。
我正在调用的方法看起来像这样,它也在类节点中。
successMessage
答案 0 :(得分:0)
我发现的解决方案是实现自定义事件。问题在于,在异步回调解析中, <script>
$("#submit").click(function () {
var data = $("#messagee").val();
//console.log(data);
$('chat_log').append('<div class="row msg_container base_sent"><div class="col-md-10 col-xs-10"><div class="messages msg_receive"><p>' + .message + '</p></div></div></div>');
clearInput();
console.log($('.msg_container_base').innerHeight())
$('.msg_container_base').scrollTop($('.msg_container_base')[0].scrollHeight)
});
// function clearInput() {
// $("#myForm :input").each(function () {
// $(this).val(''); //hide form values
// });
// }
//
// $("#myForm").submit(function () {
// return false; //to prevent redirection to save.php
// });
</script>
将会“丢失”的上下文。胖箭头使我能够使用它来调用类方法,但是其中的属性将“丢失”。由于这个原因,我从方法中获取了逻辑,并将其放在回调部分中,并在某个变量中设置了预期和所需的结果。此变量已传递给我的自定义事件,并在自定义事件处理程序中适当地设置为类变量。