在我的infoDisplay(member)
中,我需要访问特定于我从$ scope点击的div的ng-init值并操纵该值。我该怎么做?
<div ng-repeat="member in memberData">
<div class="card" ng-init="cardClicked = 'false'">
<div ng-click="infoDisplay(member)">
</div>
</div>
</div>
Javascript:
$scope.infoDisplay = function (member) {
if (settings.useApiInfo == 'false') {
var url = settings.directoryUrl + member.Id;
var openUrl = cordova.InAppBrowser.open(url, '_system', 'location = yes');
}
else {
cardClicked = { 'true': 'false', 'false': 'true' }[cardClicked];
}
}
第一部分有效,它是在我的移动应用中打开一个网址。我只需要第二部分,但无法使其正常工作。
答案 0 :(得分:4)
我要做的是在项目上设置标志:
<div ng-repeat="member in memberData">
<div class="card" ng-init="member.cardClicked = false">
<div ng-click="infoDisplay(member)">
</div>
</div>
</div>
然后您可以在控制器中访问它:
$scope.infoDisplay = function(member) {
var cardClicked = member.cardClicked;
}
如果您认为cardClicked
不应该在member
项上,请跟踪数组中的值:
<div ng-repeat="member in memberData">
<div class="card" ng-init="cardsClicked[$index] = false">
<div ng-click="infoDisplay(member, $index)">
</div>
</div>
</div>
然后您可以在控制器中访问它:
$scope.infoDisplay = function(member, index) {
var cardClicked = $scope.cardsClicked[index];
}