我创建了一个带有ui-sref的离子列表,以便在单击某个项目时,它会导航到特定页面 . 我还在每个列表项的右上角放置了一个按钮,可以打开和关闭(有点像书签) . 但是,当我单击按钮切换书签时,ui-sref也会被触发,从而导致不需要的页面导航 . 有没有办法隔离离子列表项中的按钮,所以单击时,列表项导航不会被触发?
这是我的列表项代码与按钮:
<ion-item ng-class="{'save': item.save}" collection-repeat="item in items" ui-sref="tab.page({id:item.$id})">
<button class="icon button top-right" ng-click="item.save = !item.save" ng-class="{'ion-ios-heart button-clear button-assertive':item.save, 'ion-ios-heart-outline button-clear button-stable':!item.save}"></button>
</ion-item>
1 回答
您在离子项中使用了ui-sref指令,将其作为链接(如
<a>
标记),然后在中间添加按钮,当然,当您单击按钮时,它将执行页面导航 .你需要在外面定义你的按钮 .
Update : 基本上,当你在链接标签内有按钮时,按钮会在链接触发后首先调用 . 所以如果点击按钮,你需要做的就是以某种方式为你的ui-sref eveent返回false .
因为你正在使用angularjs,你可以这样做(我没有测试它,但它应该工作,让我知道这是否有效):
1 - 在你的离子项上添加ng-click
2 - 更改按钮ng-click以使用功能
3 - 在您的控制器中: