ng-show在初始页面加载时无法正常工作

时间:2016-07-26 14:09:41

标签: javascript jquery html angularjs

所以我使用html,css和Angular.js在网页上工作,我想根据用户在下拉列表中选择的内容显示页面。当用户选择他/她的选择时,“过滤器”可以很好地工作,但最初在页面加载时我无法显示整个页面内容,而是显示空白页面。

这是我的代码片段:

<select ng-model="selectedOption" ng-options="data.id as data.name for data in myData.categories"></select>
    <div class="main"  >
        <ul id="cbp-ntaccordion" class="cbp-ntaccordion" ng-repeat="data in myData.profiles" ng-show="selectedOption == data.category" >
            <li class="cbp-ntopen">
                <h3 class="cbp-nttrigger">{{data.name}}</h3>
                <div class="cbp-ntcontent">

我收到的错误如下:

  

angular.js:13708错误:[ngRepeat:dupes] errors.angularjs.org/1.5.7/ngRepeat/dupes?

2 个答案:

答案 0 :(得分:0)

你可以使用ng-value =“defalutvalue”,这样你的代码就是那样的

<select ng-model="selectedOption" ng-value="defalutvalue" ng-options="data.id as data.name for data in myData.categories"></select>
<div class="main"  >
    <ul id="cbp-ntaccordion" class="cbp-ntaccordion" ng-repeat="data in myData.profiles" ng-show="selectedOption == data.category" >
        <li class="cbp-ntopen">
            <h3 class="cbp-nttrigger">{{data.name}}</h3>
            <div class="cbp-ntcontent">

答案 1 :(得分:0)

根据您提到的错误,我认为您没有给Angular一个方法来弄清楚如何将您的对象记录为唯一。在track by。{/ p>中使用ng-repeat表达式

因此,ng-repeat将变为:ng-repeat="data in myData.profiles track by $index"

请参阅ngRepeat文档的Tracking and Duplicates部分。

<ul id="cbp-ntaccordion" class="cbp-ntaccordion" ng-repeat="data in myData.profiles track by $index" ng-show="selectedOption == data.category">