2014-07-24 2 views
0

이것은 나에게 고통스럽게 분명해야하지만 나는 어디에도 예를 찾을 수없는 것 같습니다.ng-repeat 내의 다른 모델에 액세스

$scope.sessions = 
[{ 
    "sessionId":"1", 
    "userId":"12345", 
    "date": "17/07/2014", 
    "test_name":"2014beta", 
    "status": "new", 
    "assigned_to":"" 
}] 

$scope.users = 
[{ 
    "userId":"12345", 
    "name":"Frank Tester", 
    "dob": "17/07/1967", 
    "eyes":"blue" 
}] 

세션이 데이터베이스에 있으므로, 사용자 ID가 세션 모델 내에 저장되어, 사용자에 속한다 (위 지나치게 단순화 된 모델) :

나는 두 가지 모델, 세션 및 사용자 있습니다.

세션 목록에는 사용자 이름과 기타 사용자 세부 정보가 포함되어 있는데 두 가지 모두 사용자 모델을 통해 액세스됩니다.

범위 내에서 사용자와 세션을 사용할 수 있습니다. ng-repeat를 사용하여 모든 세션을 나열하고 (예 : session.name, session.time 등을 보여줍니다.) ID로 다른 모델의 사용자 이름에 어떻게 액세스합니까? 즉. 나는 내가 접근 할 수 있어야한다고 생각했다. session.user.name

다른 장소에서이 작업을 수행해야하며 교차 참조 된 데이터의 다른 비트에 액세스해야한다. 간단한 방법이 있는가? 템플릿 내에서 또는이 서비스를 구축해야합니까? 지시문? 필터?

당신은

그 데모를 참조하시기 바랍니다 세션 NG 반복 내부에 또 다른 NG 반복을 넣고 session.userId

하여 필터링 할 수 있습니다
+0

: http://plnkr.co/edit/BOITOEEYDM9tFH3zbMIW

<body ng-controller="MainCtrl"> <p>Hello {{name}}!</p> <ul> <li ng-repeat="session in sessions"> {{session.date}} <ul> <li ng-repeat="user in users | filter: session.userId "> {{user.name}} </li> </ul> </li> </ul> </body> 

JS를 간단히'sessions'을 반복하고, 해당 사용자 객체를 주입 한 다음에'ng-repeat'에서 사용하십시오. – runTarm

답변

0

: 수를

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

app.controller('MainCtrl', function($scope) { 
    $scope.name = 'World'; 
    $scope.sessions = 
[{ 
    "sessionId":"1", 
    "userId":"12345", 
    "date": "17/07/2014", 
    "test_name":"2014beta", 
    "status": "new", 
    "assigned_to":"" 
}] 

$scope.users = 
[{ 
    "userId":"12345", 
    "name":"Frank Tester", 
    "dob": "17/07/1967", 
    "eyes":"blue" 
}] 
}); 
+0

그게 너무 쉬워 보입니다 (하지만 확실히 작동합니다 - thanks @sylwester!). 이 솔루션의 성능은 성능면에서 어떻게 평가됩니까? 수천 명의 사용자와 세션이 생기면 세션 당 모든 사용자가 루프를 돌리거나 필터링 방법이 충분히 효율적이라는 뜻입니까? – bitfidget

+0

시도해야하지만 최종 클라이언트 하드웨어 성능에 따라 다릅니다. 수천 명의 사용자를 페이지에 올려 놓고 싶습니까? – sylwester

+0

그건 좋은 지적입니다. 이 인스턴스에서 서버에 대한 요청을 만들어야 할 수도 있습니다 - 세션 + 세션 사용자를 모두 하나로 모으는 모델을 제공하십시오. 감사. – bitfidget

관련 문제