2014-10-22 14 views
0

Я хочу перечислить пользователей в магазине. Это 100% работает, когда я использую модель пользователя ниже.indexOf (model.object) вместо indexOf (модель) не работает по назначению

// Model 
store : { type: Array }, 

Тогда есть радиокнопки каждого магазина.

<!-- Button for 'all' users --> 
<label class="btn-l33t" ng-model="radio.model" btn-radio="allstores"> 
    {{global.user.company || 'null'}} 
</label> 

<!-- Button that filters users by store. 100% working --> 
<ul> 
    <li ng-repeat="store in global.user.store"> 
    <label class="btn-l33t" ng-model="radio.model" btn-radio="store"> 
    {{store}} 
    </label> 
    </li> 
</ul> 

Наконец есть таблица пользователей

<!-- Show user if store is in user.store --> 
<!-- 100% working --> 
<tr ng-show="user.store.indexOf(radio.model) != -1 || radio.model === allstores" data-ng-repeat="user in users"> 

Так что теперь я изменил свою модель. Массив магазинов принимает объект, поэтому мы можем иметь разделы в магазинах.

store: { 
    type: Array, 
    thing: { 
     name: String, 
     section: Array, 
    } 
}, 

Этот список пользователей работает отлично, но таблица пользователей не будет фильтровать больше. Проверка переключателя ничего не делает. Я обновил радиокнопки, и они прекрасно показывают название магазина &.

<label class="btn-l33t" ng-model="radio.model" btn-radio="allstores"> 
    {{global.user.company || 'null'}} 
</label> 

<ul> 
    <li ng-repeat="store in global.user.store"> 
    <label class="btn-l33t" ng-model="radio.model" btn-radio="store"> 
     {{store.name}} <!-- changed {{store}} to {{store.name}} --> 
     <!-- for some reason it's store.name and not store.thing.name --> 
    </label> 
    <!-- added sections. This is working fine --> 
    <ul> 
     <li ng-repeat="section in store.section" > 
     <label class="btn-l33t" ng-model="radio.model2" btn-radio="section"> 
      {{section}} 
     </label> 
     </li> 
    </ul> 
    </li> 
</ul> 

Где я столкнулся с проблемой - это список пользователей списка. Не уверен, что здесь положить, чтобы исправить это.

<tr ng-show="user.store.thing.name.indexOf(radio.model.name) != -1 || radio.model === null" data-ng-repeat="user in users"> 

Edit/Update: Это, как я добавляю магазины:

var obj ={ 
    name: $scope.datStore.name, 
    section: ["grocery","utensils"] 
} 
user3[0].store.push(obj); 

Может быть, именно поэтому stores.name работает, и это не stores.thing.name. Но не следует ли обновлять модель? По какой-то причине модель принимает это.

+0

Привет! Не могли бы вы взглянуть на мой ответ и сообщить мне, если это решает ваш вопрос и/или если вам нужна дополнительная помощь. Если мой ответ разрешит ваш вопрос, не могли бы вы пометить его как принятый? Благодаря! – Josep

ответ

0

Согласно вашим последним обновляли store имеет такую ​​структуру:

store: [ 
     {name:'name1', section:['section1', 'section2']}, 
     {name:'name2', section:['section3', 'section4']} 
     ] 

Поэтому я думаю, что то, что вы хотите сделать это:

<tr ng-show="!radio.model || (user.store|filter : {name : radio.model.name}).length > 0" data-ng-repeat="user in users"> 
+0

Ты потрясающий человек. Благодарим вас за исправление моей проблемы и спасение ЧАСОВ исследований и отладки. Это так прекрасно. Я не могу вас поблагодарить! –

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