Отображать - только одно свойство объекта - среди множества свойств объекта, где объекты заключены в массив - PullRequest
0 голосов
/ 02 октября 2018

Пожалуйста, помогите, я только начал читать angularJS

У меня есть ojects с ключами типа

scope.eventList=[];
for(){
             var event = {
                         id          : hash,
                         title       : title,
                         url         : 'http://www.xxxxx.com/',
                         start       : start,
                         end         : end,
                         allDay      : false,
                         location    : '',
                         description : '',
                         editable    : true
                        };

                 $scope.eventList.push(event); 

}

, который дает eventList (массив объектов):

[
 {
                         id          : hash,
                         title       : "TITLE1" ,
                         url         : 'https://www.xxxxx.com/',
                         start       : start,
                         end         : end,
                         allDay      : false,
                         location    : '',
                         description : '',
                         editable    : true
 },
{
                         id          : hash,
                         title       : "TITLE2" ,
                         url         : 'https://www.xxxxx.com/',
                         start       : start,
                         end         : end,
                         allDay      : false,
                         location    : '',
                         description : '',
                         editable    : true
}
]

Мне нужно поместить это в ng-repeat, но показывать только названия элементов

like : Title1
       Title2
       Title3
       ......
       TitleN

Пробовал следующее, но это не работает.

 <div customEventName="{{item.title}}" 
     ng-model="item" ng-repeat="item.title in eventList track by $index">
     {{item.title}}
    </div>

Большое спасибо запомощь.

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Вам не нужно ng-model ни track by $index в вашем случае.

Ваша проблема в том, что Y из Y in X внутри ng-repeat является переменной "target", которая будетсодержит текущий элемент, содержащийся в массиве X.

Правильный код:

<div
  ng-repeat="item in eventList"
  customEventName="{{item.title}}">
  {{item.title}}
</div>
0 голосов
/ 02 октября 2018

data = [
 {
   id : 'hash',
   title : "TITLE1" ,
   url : 'https://www.xxxxx.com/',
   start: 'start',
   end : 'end',
                  
 },
  {
   id : 'hash',
   title : "TITLE2" ,
   url : 'https://www.xxxxx.com/',
   start: 'start',
   end : 'end',
                  
 }, {
   id : 'hash',
   title : "TITLE3" ,
   url : 'https://www.xxxxx.com/',
   start: 'start',
   end : 'end',
                  
 },

]

var titles = data.map(({title})=> title)
console.log(titles)
...