2016-03-12 4 views
0

Я хочу получить определенное значение в многомерном объекте в угловом js. Мой объект что-то вроде этого:angular.js получение определенного значения из массива

$Item = [{item1: 'lorem ipsum'}, {item2: [{inner_item:'lorem ipsum', inner_item2: 'lorem ipsum'}]},...] 

Как я могу сделать это в контроллере, указав, как в JQuery:

$Item[1][2]; 
and also in the expression 
{{???}} 

ответ

0
  • элементы массива могут быть доступны квадратной нотации (ex: item[0])
  • Доступ к данным объекта можно посредством: dot нотация (например: item1.paramater)

var app = angular.module('app', []).controller('indexCtrl', function ($scope) { 
 
    $scope.item = [ 
 
     {item1: 'lorem ipsum'}, 
 
     {item2: [{inner_item:'lorem ipsum', inner_item2: 'lorem ipsum'}] 
 
     }]; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="app" ng-controller="indexCtrl"> 
 
    <p>item[0]: {{item[0]}}</p> 
 
    <p>item[0].item1: {{item[0].item1}}</p> 
 
    <p>item[1]: {{item[1]}}</p> 
 
    <p>item[1].item2[0]: {{item[1].item2[0]}}</p> 
 
    <p>item[1].item2[0].inner_item: {{item[1].item2[0].inner_item}}</p> 
 
</div>

+0

работа хорошо для меня спасибо allot! –

1

Ваши данные немного неоднозначные, но я покажу вам, как сделать два варианта правильного Угловым путем:

var app = angular.module('myApp', []); 
 

 
app.controller('TestCtrl', ['$scope', function($scope) { 
 
    $scope.items = [{country: 'Germany'}, 
 
        {country: 'Spain'}, 
 
        {country: 'England'}]; 
 
    $scope.nestedItems = [{continent: 'Europe', 
 
         countries: [ 
 
          {country: 'Germany'}, 
 
          {country: 'Spain'}, 
 
          {country: 'England'}] 
 
         }]; 
 
}]);
.single { 
 
    background-color: lightgreen; 
 
} 
 

 
.nested { 
 
    background-color: lightblue; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"> 
 

 
</script> 
 
<section ng-app="myApp" ng-controller="TestCtrl"> 
 
    <div class="single"> 
 
    <ul> 
 
    <li ng-repeat="item in items"> 
 
     Country: {{item.country}} 
 
    </li> 
 
    </ul> 
 
    </div> 
 
    <div class="nested" ng-repeat="item in nestedItems"> 
 
    <h2>Continent: {{item.continent}}</h2> 
 
    <ul> 
 
    <li ng-repeat="item in item.countries"> 
 
     Country: {{item.country}} 
 
    </li> 
 
    </ul> 
 
    </div> 
 
    
 
    
 
</section>

Смежные вопросы