我知道Angular 2中有大量有关变化检测的信息,而且我一直在竭尽全力绕过它。我认为我的问题可能与Array的可变性属性有关,但我不确定。所以我们有这些"桶#34;从Firebase进来,我将它们推入一个阵列,然后传入一个子组件。这一切都有效,并且Array很快就会被填充,但它需要几秒钟才能在页面上呈现。 (但是当我尝试添加一些setIntervals和setTimeouts时,它的工作速度要快得多,但除非有一个干净的解决方案,否则我不会那样做。)有没有人理解幕后发生了什么事情足以向我解释并帮助我吗?谢谢!
public class DisplayPattern{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter an integer and I will display a pattern for you: ");
int n = input.nextInt();
List<Integer> indentList = new ArrayList<Integer>();
int maxLength= totalSpace(n) + (n-1);
for(int i = 1; i <= n; i++ ){
int eachDigitSize = totalSpace(i);
int indent = maxLength - (eachDigitSize+i-1);
indentList.add(indent);
}
for(int row = 1; row<=n; row++){
int indentation = indentList.get(row-1);
for(int space=indentation; space>=0; space--){
System.out.print(" ");
}
for(int number = row; number > 0; number--){
System.out.print(number + " ");
}
System.out.println();
}
}
private static int totalSpace(int n) {
int MAX_ROWS = n;
int count = 0;
for(int i = MAX_ROWS; i >= 1; i--){
int currNum = i;
int digit;
while(currNum > 0){
digit=currNum % 10;
if(digit>=0){
count++;
currNum = currNum/10;
}
}
}
return count;
}
}
答案 0 :(得分:0)
请参阅此处的解决方案#2:angular2 firebase realtime updating not working
“简单地将定义放在angular2的类中,而不是在外面,并且一切都按照我最初的假设开始工作。”