2017-05-30 97 views
0

我有一个“行动”对象的数组。每个对象都有一个状态:“mastered”或“new”。吴重复和角度过滤器

在一个导航选项卡中,我展示了“新”的行动:

<div ng-repeat="x in main.actions | filter: {status: '!mastered'} > 

<div class="btn-group"> 
    <label ng-model="x.status" uib-btn-radio="'new'"><label> 
    <label ng-model="x.status" uib-btn-radio="'mastered'"></label> 
</div> 

</div> 

在一个单独的导航选项卡中,我展现掌握动作。我的代码与ng-repeat中包含的过滤器除外相同。

通过单击这些单选按钮,可以将操作的状态从“新”更改为“掌握”。一切都按预期运作,但是,当我改变行动的状态时,整个SPA回到它的主页!

这是为什么?我需要做什么来防止这种情况发生?

回答

0

您可以合并,因此您不必为每种状态使用不同的选项卡。尝试这样的操作。

代码:

<div ng-repeat="x in main.actions | filter: {status: stat} "></div> 


<div class="btn-group"> 
    <label ng-model="x.status" uib-btn-radio="'new'" ng-click="stat = 'new'"><label> 
    <label ng-model="x.status" uib-btn-radio="'mastered'" ng-click="stat = 'mastered'"></label> 
</div> 

这个现在应该根据你点击按钮筛选NG-重复。

+0

感谢您的回复。不幸的是,我不确定我是否跟着。我确实需要保持这种分离 - 实际上有5种不同的状态,我需要将“掌握”的动作放在他们自己的标签上。我想保留更改操作状态的功能,以便可以将它从主选项卡移至主控选项卡。 –

+0

上面的代码仍然会给你不同标签的影响,但它会将你的编码降到最低。如果你坚持让他们分开,那很好,但你需要提供更多的代码,那么你上面提供了什么,以便让某人进一步提供帮助。你可以这样做,或创建一个jsFiddle的问题。 – Ohjay44