小编Jas*_*son的帖子

Angular 2调用多个异步方法

我有一个移动应用程序我正在构建,现在我正在进行身份验证.在我访问主页之前,我需要在我可以向用户显示数据之前,在我构建的API上点击各种端点.

在Postman中测试时,所有端点都返回正确的数据,但是null当我在我的应用程序中使用它时,我在第二次异步调用中得到一个值.

我确定它与这些调用的顺序有关,所以我只是在寻找一些帮助,以便我可以在启动另一个调用之前等待一个调用完成.

public login() {

this.showLoading();

this.userService.getUserIdFromUserName(this.registerCredentials.username) // WORKS
  .subscribe(
    res => {
      console.log(res);
      localStorage.setItem("UserId", res.toString());
    },
    err => {
      console.log(err);
    });

this.userService.getEmployeeIdFromUserId(localStorage.getItem("UserId")) // THIS RETURNS NULL 
  .subscribe(
    res => {
      console.log(res);
      localStorage.setItem("EmployeeId", res.toString());
    },
    err => {
      console.log(err);
    });

this.authService.login(this.registerCredentials)
  .subscribe(

    data => {
      this.loading.dismissAll();
      console.log('User logged in successfully! ', data);
      this.nav.push(TabsPage);
      localStorage.setItem("Username", this.registerCredentials.username);
      localStorage.setItem("isLoggedIn", "true");
    },

    error => {
      this.loading.dismissAll();
      this.showAlert("Uh oh!", "Something went wrong. Please re-enter your login credentials or check your connection.");
      console.log(error); …
Run Code Online (Sandbox Code Playgroud)

javascript rxjs typescript angular

7
推荐指数
1
解决办法
2948
查看次数

确认DatePicker时间更改

所以我有一个DatePicker,我可以更改某个字段,但我希望它只HTML在用户确认更改时更新.但是,目前,当我(ionChange)在我的ion-datetime元素中使用该事件时,它会在我的确认警告弹出之前自动更新UI.

如何才能使我的日期选择器中的值仅在用户按下确认时更改?

updateStartTime(startTime) {
    let alert = this.alertControl.create({
        title: 'Change start time',
        message: 'Are you sure you want to update the start time for this event?',
        buttons: [{
            text: 'Cancel',
            handler: () => {
                console.log('cancel');
            }
        }, {
            text: 'Confirm',
            handler: () => {
                console.log(startTime);
            }
        }]
    });
    alert.present();
}
Run Code Online (Sandbox Code Playgroud)

 

<ion-item detail-push>
    <ion-label><b>Start: </b></ion-label>
    <ion-datetime displayFormat="hh:mm A"
                  [(ngModel)]="item.EventStart"
                  (ionChange)="updateStartTime(item.EventStart)"></ion-datetime>
</ion-item>
Run Code Online (Sandbox Code Playgroud)

html javascript datepicker angularjs ionic-framework

5
推荐指数
1
解决办法
625
查看次数

用JSON字符串中的<br>替换\n

我有一个函数来抓取文本数据作为JSON,然后进行字符串化.我正在尝试在我的Web应用程序中以模式显示此数据,但字符串在HTML中显示如下:

{"body":"--- \nbl_playout_user:BLplayout \n \n#播放配置值\nbl_playout_image_drive_mount:'\\ Paparazzi\Images'\nbl_playout_image_path:'我:'\nbl_playout_machine_role:Primary \nbl_playout_network_name:ABC1 \nbl_playout_stand_alone_mode:0 \nbl_playout_run_mode:HD \nbl_playout_format:AJA \nbl_playout_resolution:720P \nbl_playout_logo_override:ABC \nbl_playout_default_header:底线\nbl_playout_sponsor_on:15000 \nbl_playout_sponsor_off:60000 \nbl_playout_media_ball_on:15000 \nbl_playout_media_ball_off:15000 \nbl_playout_page_engine_working_directory: '{{bl_templates_root_dir}}\SC14_Templates' \nbl_playout_schema_file_path : '{{bl_templates_root_dir}}\SC14_Templates\BLMaster.xsd' \nbl_playout_default_swatch_path: '{{bl_templates_root_dir}}\SC14_Templates\003_BtmLn_deliverable_ele\still_ele\RDBL_GENERIC_SWATCH.png' \nbl_playout_default_logo_path:"{{bl_templates_root_dir}}\SC14_Templates\003_BtmLn_deliverable_ele\still_ele\default_team_logo.png'\n"}

我希望将实例\n替换为一个,<br>以便它在HTML中正确显示,但是我的功能似乎没有做到这一点.任何想法为什么?我很难过.

var stringData = JSON.stringify(data);
stringData = stringData.replace(new RegExp('\r?\n','g'), '<br />');
return stringData;
Run Code Online (Sandbox Code Playgroud)

html javascript jquery user-interface json

2
推荐指数
1
解决办法
5496
查看次数