Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从Angular 2构造函数传递变量,然后将语句传递给模板_Javascript_Angular_Typescript_Ionic2 - Fatal编程技术网

Javascript 从Angular 2构造函数传递变量,然后将语句传递给模板

Javascript 从Angular 2构造函数传递变量,然后将语句传递给模板,javascript,angular,typescript,ionic2,Javascript,Angular,Typescript,Ionic2,我使用的安全登录系统有点问题。我要做的是检查设备的本机存储中是否有一个名为“user”的项,然后检查数据库中是否存在该用户,并从数据库中的行中读取唯一id,以便在方法中使用 import {Component} from "@angular/core"; import { NativeStorage } from 'ionic-native'; import {Events, NavController, NavParams, ModalController, LoadingController

我使用的安全登录系统有点问题。我要做的是检查设备的本机存储中是否有一个名为“user”的项,然后检查数据库中是否存在该用户,并从数据库中的行中读取唯一id,以便在方法中使用

import {Component} from "@angular/core";
import { NativeStorage } from 'ionic-native';
import {Events, NavController, NavParams, ModalController, LoadingController} from 'ionic-angular';
import {Login} from '../login/login';
import {ChallengePage} from '../challenge/challenge';
import {AddTeamPage} from '../add-team/add-team';
import {EditTeamPage} from '../edit-team/edit-team';
import {Users} from '../../providers/users/users';
import {Teams} from '../../providers/teams/teams';
import {Results} from '../../providers/results/results';
import {Players} from '../../providers/players/players';
import {Packs} from '../../providers/packs/packs';

@Component({
    templateUrl: 'dashboard.html'
})
export class Dashboard {
    _id: string;
    user: any;
    team: any;
    teamExists: boolean;
    gamesPlayed: boolean;
    sample: any;
    strip: any;
    last5: any;
    constructor(
        private nav: NavController,
        public events: Events,
        private _navParams: NavParams,
        private playerService: Players,
        private userService: Users,
        private teamService: Teams,
        private resultService: Results,
        private packService: Packs,
        private modalCtrl: ModalController,
        private loadingCtrl: LoadingController
    ) {
        let loading = this.loadingCtrl.create({
            content: "Loading..."
        });

        loading.present();
        this.teamExists = false;
        this.gamesPlayed = false;
        var user = {};
        var _id = {};
        //main id
        NativeStorage.getItem('user')
            .then(function (data) {
                user = data;
                console.log("native storage object found");
                userService.accountExists(this.user.email).then((data) => {
                    user = data;
                    if (user) {
                        _id = user['_id'];
                        console.log("user found!", user);
                        console.log("_id for logged in user", _id);
                    } else {
                        console.log("no existing user account found!");
                        nav.setRoot(Login);
                        nav.push(Login);
                        nav.pop();
                    }

                });
            }, function (error) {
                console.error("Error getting user from native storage");
            });
}

addTeam(id) {
    this.nav.push(AddTeamPage, { 'user_id': id });
}
编辑:在模板代码中添加以调用函数

<ion-header class="gradient-dark-up">
    <ion-navbar class="navbar-primary">
        <button ion-button color="main"  icon-left menuToggle>
            <ion-icon class="header-main" name="menu"></ion-icon>
        </button>
        <ion-title><h1 class="header-main">Dashboard</h1></ion-title>
        <ion-buttons end>
            <button ion-button icon-only color="primary" *ngIf="!teamExists" (click)="addTeam(_id)"><ion-icon class="header-main" name="add"></ion-icon></button>
        </ion-buttons>
    </ion-navbar>
</ion-header>

仪表板
因此,addTeam的id应该通过单击模板上的按钮读取,但是当我尝试传入_id时,它总是未定义的,即使在构造函数中,当我将值输出到控制台时,它会显示正确的_id

我想这只是因为我缺乏安格拉尔绊倒我的经验,所以如果我做了一些根本错误的事情,请随时纠正我


提前感谢。

如果您使用
此。
访问当前类的属性,请不要使用
函数(){

    NativeStorage.getItem('user')
        .then(function (data) {
而是使用箭头函数

    NativeStorage.getItem('user')
        .then((data) => {

如果使用
this.
访问当前类的属性,请不要使用
function(){

    NativeStorage.getItem('user')
        .then(function (data) {
而是使用箭头函数

    NativeStorage.getItem('user')
        .then((data) => {

您可以向我们展示包含
addTeam()
的模板/组件吗?我已经添加了调用代码的位置。您可以向我们展示包含
addTeam()的模板/组件吗
在其中?我已经添加了调用代码的位置。非常感谢您,切换到箭头函数并使用它。工作起来很有魅力!非常感谢您,切换到箭头函数并使用它。工作起来很有魅力!