Angular Js:如何根据ID选择数组中的表达式?

时间:2014-02-17 02:25:15

标签: javascript arrays angularjs

如何根据已分配的ID打印数组的表达式?我有两个数组,一个id为11,另一个为12.如何获取属性为12的数组的名称表达式?

以下是服务模块,控制器和HTML

http://jsfiddle.net/ADukg/4705/

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

function MyCtrl($scope, myProperties) {

    $scope.name = 'StackOverflow';

    $scope.myProperties = myProperties;

};

myApp.factory('myProperties', function() {

    var myProperties = [
            {
                'name': '3 Bedroom Fixer Upper',
                'city': 'Santa Rosa',
                'id': 11,
                'state': 'CA',
                'date_added': '2/3/14',
                'completion_status': '80%',
                'imgURL': 'http://dfon12yb6dcdf.cloudfront.net/product/kr4f0uv5tkd6slvmn7r9j4h4jj/w1024x683.jpg?v=4',
            },
            {
                'name': '2 Bedroom Condo',
                'city': 'Vallejo',
                'id': 12,
                'state': 'CA',
                'date_added': '4/10/20',
                'completion_status': '50%',
                'imgURL': 'http://dfon12yb6dcdf.cloudfront.net/product/kr4f0uv5tkd6slvmn7r9j4h4jj/w1024x683.jpg?v=4',
            },
        ]

    //return the array here
    return myProperties

});

<div ng-controller="MyCtrl">
    <h1>Hello, {{name}}!</h1>
    <br>
    <ul ng-repeat="property in myProperties">
        <li>{{property.name}}</li>
    </ul>
    <br>
    <h3>{{property.id[12]}}</h3>      
</div>

1 个答案:

答案 0 :(得分:0)

您可以使用angular forEach函数将ID与数组中的每个对象进行比较。这是相关的一点。

$scope.findObj = function(searchId)
        {
          var resultObj;
          angular.forEach(myProperties, function(obj)
          {
            if ( obj.id == searchId)
            {
              resultObj = obj;
            }
          });
          return resultObj;
        };

Demo Plunker是here