2016-07-26 3 views
0

Итак, я работал на веб-странице с использованием html, css и Angular.js, и мне хотелось отобразить страницу на основе того, что пользователь выбрал в раскрывающемся списке. «Фильтр», когда пользователь выбирает свой выбор, работает отлично, но первоначально, когда страница загружается, я не мог отобразить весь контент страницы, вместо этого он отображает пустую страницу.ng-show не работает должным образом при загрузке начальной страницы

Это фрагмент моего кода:

<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:13708Error: [ngRepeat:dupes] errors.angularjs.org/1.5.7/ngRepeat/dupes?

+0

Получаете ли вы какие-либо ошибки в консоли? – zero298

+0

Да, это похоже на «angular.js: 13708Error: [ngRepeat: dupes] http://errors.angularjs.org/1.5.7/ngRepeat/dupes?" – Harun

+0

Чтобы избежать ошибки обмана, вам нужно использовать 'track by [property]' здесь. Это может быть встроенное свойство $ index или свойство объектов, которые вы повторяете. Что-то вроде 'ng-repeat =" данных в myData.profiles отслеживать по $ index "' – KreepN

ответ

0

Вы можете использовать нг-значение = «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"> 
+0

Пробовал, 't work – Harun

0

Из-за ошибки, о которой вы говорили, я думаю, что вы не даете Угловой способ выяснить, как отметить ваш объект как уникальный. Используйте выражение track by в своем ng-repeat.

Так что ваши ng-repeat бы стать: ng-repeat="data in myData.profiles track by $index"

Tracking and Duplicates Смотрите раздел ngRepeat документации.

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

исправил ошибку ngRepeat: dupes и прочитал документацию ... спасибо, чувак, но не могли бы вы помочь мне с проблемой ng-show. – Harun

+0

@Harun Вы получаете новые ошибки консоли, кроме '[ngRepeat: dupes] 'ошибка? – zero298

+0

нет, на моей консоли нет ошибок – Harun

Смежные вопросы