不能变

时间:2019-07-20 09:11:23

标签: angular typescript

我正在尝试向ESP8266上的HTTP Server发送POST请求。 4应传输变量:上班时间,下班时间,上班时间,下班时间。我想从我从“ ng-bootstrap”导入的timepicker组件中获取变量

我已经尝试了几种方法来执行此操作,但是即使经过3天的混乱也无法正常工作。我真的对Angular陌生,这是我的第一步。我也已经买了一个关于udemy的课程,但是正如已经提到的,这是我的第一步...

在html文件中,我可以显示变量,但不能在打字稿中使用它,它们甚至会更新:( 应该实现以下生命周期: 输入打开和关闭的时间->单击保存->调用方法->通过邮寄发送数据到后端->后端处理->行动

export class TimepickerComponent implements OnInit {
ontime = {hour: '', minute: ''};
offtime = {hour: '', minute: ''};

onhour  = this.ontime.hour;
onminute = this.ontime.minute;
offhour = this.offtime.hour;
offminute = this.offtime.minute;
postData = {};
url = '192.168.4.1/settimes';

constructor(private http: HttpClient) {
this.postData = {
onhour: this.onhour,
onminute: this.onminute,
offhour: this.offhour,
offminute: this.offminute
};
}

我上传了完整的代码,以便在CodePile上更好地查看: HTML-https://www.codepile.net/pile/72MLn1pl TS-https://www.codepile.net/pile/XRWPD67w

1 个答案:

答案 0 :(得分:1)

您的postData对象是在您的构造器中创建的,并且在视图中不包含对变量的引用。您应该在postData函数中构造postTimes对象。

请参见以下示例:

var obj1 = { name : '' };

var val = obj1.name;

var data = { name : val };

val = 'bar';

console.log(data) // { name : ''}

var postData = { name : val };

console.log(postData); // { name: 'bar'}