我有一个场景,其中有标签,当用户点击标签时,只有该标签应该有明星而不是每个标签
这是我的HTML代码:
<ul class="nav nav-tabs topics-div">
<li class="li-div"><a><span>Topics</span> <span class="glyphicon glyphicon-play" aria-hidden="true"></span></a></li>
<li ng-repeat="topics in oJdDetails.topics">
<a style="cursor:pointer" ng-click="fngetQList(topics,$index)">
<p>{{topics}}</p>
<uib-rating ng-model="rate" ng-if="displayStars" max="max" read-only="isReadonly" on-hover="hoveringOver(value)" on-leave="overStar = null" titles="['one','two','three']" aria-labelledby="default-rating"></uib-rating>
</a>
</li>
</ul>
我有一个控制器代码如下:
$scope.fngetQList = function(topics, index) {
debugger;
$scope.displayQList = true;
$scope.displayStars = true;
$scope.sTopics = topics;
$scope.index = index;
getCandidateInterviewListService.fnGetQList(topics).then(function(response) {
$scope.aQuestionList = response;
console.log($scope.aQuestionList);
});
};
这里的主题是像["html","css","angular"]
我面临的问题是,当我点击一个标签时,我正在为所有标签获取星标,我只需要点击标签的星标
任何帮助都将不胜感激。
答案 0 :(得分:2)
因为您在displayStars
中使用了相同的范围变量ng-repeat
,所有标签都会变星。同样,由于相同的范围变量rate
,所有topics
的{{1}}都是相同的。
而是按如下方式为每个数组使用一个数组(请注意,您需要知道数组rate
的{{1}}。所以请确保您的初始化是正确的。),
HTML code:
length
控制器代码:
oJdDetails.topics
希望这可以解决问题。