2017-03-29 7 views
0

項目をクリックすると特定のページに移動するようにui-srefでイオンリストを作成しました。また、各リスト項目の右上隅にオンとオフを切り替える(ブックマークのような)ボタンを配置しました。しかし、ブックマークを切り替えるためにボタンをクリックすると、ui-srefもトリガされ、不要なページナビゲーションが発生します。 ionicリストアイテムのボタンを分離する方法はありますか?クリックすると、リストアイテムのナビゲーションはトリガーされません。ここでリスト項目上のイオンボタン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> 

答えて

0

あなたは、あなたのイオンの項目でUI-SREFディレクティブを使用するリンク(のような<a>タグ)としてそれを作ることと、それから、あなたのボタンを追加しますその間に、コースのボタンをクリックすると、ページのナビゲーションが行われます。

ボタンを外側に定義する必要があります。

<ion-item ng-class="{'save': item.save}" collection-repeat="item in items" ui-sref="tab.page({id:item.$id})">  
</ion-item> 

<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> 

更新: あなたがリンクタグ内のボタンを持っている場合、基本的には、ボタンは最初、右のリンクがトリガ後に呼ばれます。あなたがしなければならないことは、ボタンがクリックされた場合、どうかあなたのui-sref eveentに対してfalseを返すことです。

あなたがangularjsを使用しているので、あなたはこれを行うことができます(私はそれをテストしていないが、それは動作するはずです、これは働いていたなら、私に知らせて):

1 - あなたイオンアイテムをngのクリックを追加

<ion-item ng-click="isNavigation()" ng-class="{'save': item.save}" collection-repeat="item in items" ui-sref="tab.page({id:item.$id})">  

2 - あなたのボタン

<button class="icon button top-right" ng-click="myFunctionName(item.save)" ng-class="{'ion-ios-heart button-clear button-assertive':item.save, 'ion-ios-heart-outline button-clear button-stable':!item.save}"></button> 

3機能を使用するためにNGがクリック変更 - 中あなたのコントローラ:

$rootScope.isNavigation=true; 
$scope.isNavigation=function(){ 
    if($rootScope.isNavigation) 
     return true; 
    else 
     return false; 
} 
$scope.myFunctionName(item){ 
    $rootScope.isNavigation=false; 
    return item.save = !item.save; 
} 
+0

ありがとうございました!イオンアイテムの外側にボタンを置くと、ページナビゲーションが回避されることを理解しています。しかし、コレクションリピートの各リストアイテムに自分のボタンが表示されるようにしようとしています。ボタンを私のcollection-repeatディレクティブにリンクする方法はありますか?私のui-srefディレクティブではありません。 –

+0

私は答えを更新し、それが助けてくれることを願っています。 –

+0

このメソッドを使って私が望むことをすることはできませんでしたが、これを行う簡単な方法が見つかりました:ng-click = "$ event.stopPropagation()" –

関連する問題