Angular 表达式从 object 的数组中等于 属性 得到 属性 of object
Angular expression get property of object from equal property in array of objects
抱歉标题不好,实在想不出合适的。
无论如何,我有一个 object 的数组,它们都列在一个 ng-repeat 中。然后,我想在另一个objects数组中找到object,它与上面的id相同,并得到它的另一个属性。
我希望这个示例代码可以简化事情:
$scope.discussions = [
{
recipient: {
id: 'theid'
},
messages: []
}
];
$scope.friends = [
{
id: 'theid',
online: false
}
];
在我看来我有:
<div ng-repeat="discussion in discussions">
<div>Online = {{//code here}}</div>
</div>
两种都试过了
ng-class="{online: {{friends.some(fr => fr.id == discussion.recipient._id).online}}; }"
和
ng-class="{online: friends.some(fr => fr.id == discussion.recipient._id).online }"
我的建议是在您的 angular 控制器中定义一个函数,该函数可以将单个 discussion
匹配到您的 $scope.friends
中的匹配元素。该功能可能看起来像这样(这可以改进,但它完成了工作):
$scope.findMatchingId = function (discussion) {
var matchingFriend;
$scope.friends.some(function (friend) {
if (friend.id === discussion.recipient.id) {
matchingFriend = friend;
return true;
}
return false;
});
return matchingFriend;
};
然后在您的 html 中,您可以像这样在 ng-repeat 中的元素上调用该函数:
<div ng-repeat="discussion in discussions">
<div>Online = {{findMatchingId(discussion)}}</div>
</div>
看到这个plnkr
抱歉标题不好,实在想不出合适的。
无论如何,我有一个 object 的数组,它们都列在一个 ng-repeat 中。然后,我想在另一个objects数组中找到object,它与上面的id相同,并得到它的另一个属性。
我希望这个示例代码可以简化事情:
$scope.discussions = [
{
recipient: {
id: 'theid'
},
messages: []
}
];
$scope.friends = [
{
id: 'theid',
online: false
}
];
在我看来我有:
<div ng-repeat="discussion in discussions">
<div>Online = {{//code here}}</div>
</div>
两种都试过了
ng-class="{online: {{friends.some(fr => fr.id == discussion.recipient._id).online}}; }"
和
ng-class="{online: friends.some(fr => fr.id == discussion.recipient._id).online }"
我的建议是在您的 angular 控制器中定义一个函数,该函数可以将单个 discussion
匹配到您的 $scope.friends
中的匹配元素。该功能可能看起来像这样(这可以改进,但它完成了工作):
$scope.findMatchingId = function (discussion) {
var matchingFriend;
$scope.friends.some(function (friend) {
if (friend.id === discussion.recipient.id) {
matchingFriend = friend;
return true;
}
return false;
});
return matchingFriend;
};
然后在您的 html 中,您可以像这样在 ng-repeat 中的元素上调用该函数:
<div ng-repeat="discussion in discussions">
<div>Online = {{findMatchingId(discussion)}}</div>
</div>
看到这个plnkr