问题:点击时应显示具有特定视图的ng-repeat

时间:2016-07-10 14:00:36

标签: javascript html angularjs

我有一个场景,其中有标签,当用户点击标签时,只有该标签应该有明星而不是每个标签

这是我的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"]

这样的数组

我面临的问题是,当我点击一个标签时,我正在为所有标签获取星标,我只需要点击标签的星标

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

因为您在displayStars中使用了相同的范围变量ng-repeat,所有标签都会变星。同样,由于相同的范围变量rate,所有topics的{​​{1}}都是相同的。

而是按如下方式为每个数组使用一个数组(请注意,您需要知道数组rate的{​​{1}}。所以请确保您的初始化是正确的。),

HTML code:

length

控制器代码:

oJdDetails.topics

希望这可以解决问题。