为什么我的ng-repeat工作不成功(angularJs)

时间:2018-03-20 13:57:41

标签: javascript angularjs angularjs-ng-repeat

我使用angularjs(1.6)。我在ng-repeat方面遇到了一些麻烦。我在我的constructor对象数组中(有问题,标题......)。根据今天的日期,我使用变量从数组中获取对象。这个对象我想用ng-repeat显示,但我想我一定犯了错误。没有任何事情发生。

以下是构造函数中对象的示例:

 this.questions = [
    {
      date: '20/3',
      question: `How odl are you ?`,
      answer: { r1: '12', r2: '28', r3: '32' },
    },
    {
      date: '21/3',
      question: `What's your name? ?`,
      answer: { r1: 'Math', r2: 'Eric', r3: 'Ben' },
    },....
 ]

使用我想根据日期显示的值返回对象的变量:

var dateObj = new Date();
var month = dateObj.getUTCMonth() + 1;
var day = dateObj.getUTCDate();
const today = day + "/" + month;

this.newDates = this.questions.find(q => q.date === today)

我想显示newDates对象包含的内容。

这是html:

<h1 ng-repeat="newDate in ::$ctrl.newDates">{{ ::newDate.question }}</h1>

我一定犯了一个愚蠢的错误,或者我无法显示动态创建的对象的数据......如果你能帮助我,我找不到解决方案。

2 个答案:

答案 0 :(得分:1)

您需要使用Array.filter()返回一个数组,其中Array.find()对象

this.newDates = this.questions.filter(q => q.date === today)

注意:如果您希望单个对象保留现有代码而不使用ngRepeat直接使用

<h1>{{ ::$ctrl.newDates.question }}</h1> 

答案 1 :(得分:1)

您应该使用filter代替find

@Override
public void onBackPressed() { 
super.onBackPressed();
    Intent intent = new Intent( thisActivity.this, yourFirstActivity.class);
    startActivity(intent);
    finish();
    }