每次加载计数器增加功能

时间:2019-06-20 00:41:12

标签: javascript

我对javascript很陌生,但是我试图创建一个计数器,但是当我设置计数器时。它看起来给了我相同的价值,但我想要第一轮<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/user_dashboard_fragment_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:fillViewport="true" tools:context=".Dashboard"> <androidx.constraintlayout.widget.ConstraintLayout android:padding="40dp" android:id="@+id/userInfoContainer" android:layout_width="match_parent" android:layout_height="wrap_content"> <com.github.abdularis.civ.CircleImageView android:id="@+id/userImage" android:layout_width="match_parent" android:layout_height="0dp" android:padding="20dp" android:scaleType="fitCenter" android:src="@drawable/male_user_sample1" app:layout_constraintDimensionRatio="1:1" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/username" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="@string/username_sample" android:textColor="@color/colorPrimaryDark" android:textSize="30sp" app:layout_constraintTop_toBottomOf="@id/userImage" /> <com.ramijemli.percentagechartview.PercentageChartView android:id="@+id/userLevelProgress" android:layout_width="match_parent" android:layout_height="0dp" android:layout_margin="20dp" android:outlineAmbientShadowColor="@color/colorPrimary" app:layout_constraintDimensionRatio="1:1" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/username" app:pcv_animDuration="1000" app:pcv_animInterpolator="anticipate_overshoot" app:pcv_drawBackground="false" app:pcv_drawBackgroundBar="false" app:pcv_mode="ring" app:pcv_orientation="counter_clockwise" app:pcv_progress="100" app:pcv_startAngle="270" app:pcv_textColor="@color/colorPrimary" app:pcv_textShadowRadius="100" app:pcv_textSize="50sp" /> <TextView android:id="@+id/userLevel" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="@string/level_sample" android:textColor="@color/colorPrimary" android:textSize="40sp" app:layout_constraintTop_toBottomOf="@id/userLevelProgress" /> </androidx.constraintlayout.widget.ConstraintLayout> </ScrollView>

1 then 2 then 3 to n-1

3 个答案:

答案 0 :(得分:0)

这是因为变量contactsNum对于函数计时器而言是本地的,并且随后每次对函数timer的调用都将初始化值0。如果要跟踪该值,可以使用闭包。

答案 1 :(得分:-1)

问题在这里:

<input [ngModel]="CustomerVM.customer.CustomerDob | date:'yyyy-MM-dd'" (ngModelChange)="CustomerVM.customer.CustomerDob=$event" type="date" name="MemberDateOfBirth" class="form-control" (blur)="Calculate_Age(CustomerVM.customer.CustomerDob)">

您正在function timer(){ var contactsNum = 0; contactsNum++; console.log(contactsNum) } 中定义和分配变量。也就是说,每次timer被调用时,timer被设置为0。

您需要将其放在函数之外,例如:

contactsNum

答案 2 :(得分:-1)

欢迎来到JavaScript社区!似乎您每9秒调用一次计时器功能,但是您还要将每个呼叫的 contactsNum 计数器值设置为 0 。因此,在第一个函数调用中,contactsNum会增加为1,但在下一个函数中,它会根据var contactsNum = 0; 然后首先将其设置为0,然后将其递增

您可以通过简单地在范围发生增加的范围之外初始化或声明计数器变量来解决此问题,例如:

var contactsNum = 0;

function timer(){
    contactsNum++;
    console.log(contactsNum)
}


(function loop() {
  setTimeout(function () {
   timer()
    loop()
  }, 9000);
}());