div の 1 回目と 2 回目のクリックで異なるイベントを実行する必要がある状況があります。最初のクリックで div が展開され、2 回目のクリックで詳細ページにリダイレクトされます。Div には投稿の詳細が含まれます。
<div ng-click="select(comment._id);"
ng-dblclick="changeurl(user.username,data.type,comment._id)"
enter ng-repeat="user in data.user">
今まで、最初のクリックで div を展開し、ダブルクリックで詳細ページにリダイレクトしていました。
それを行うための最良の方法は何でしょうか。
今私の考えは、ng-clickでカウンターを作成してからイベントを実行することです。DOM End で実行できますか。
<div ng-click="counter = counter + 1" ng-repeat="user in data.user" ng-init="counter = 0" >
select(comment._id) changeurl(user.username,data.type,comment._id) を条件付きで実行できる他のディレクティブはありますか、またはこれらの関数を条件付きで呼び出すにはどうすればよいですか?
更新: ここでのダイアナのアドバイスは、更新されたステータスです:
ここでは、ng-repeat からの div はありません。ここでは、データに従って表示される 2 種類のレイアウトがあります。
<div ng-repeat="data in comments">
<div ng-if="data.type=story">
<div ng-click="clickEvent($index,comment._id, user.username,data.type);" enter ng-repeat="user in data.user">
//displaying data here
</div>
</div>
<div ng-if="data.type=news">
<div ng-click="clickEvent($index,comment._id, user.username,data.type);" enter ng-repeat="user in data.user">
//displaying data here
</div>
</div>
</div>
$scope.secondClick = [];
//scope data
myservice.data().then(function(response){
$scope.comments = response.data;
for (i=0; i< $scope.comments.length;i++){
$scope.secondClick[i] = false;
}
});
$scope.clickEvent = function(index,id, userName, type){
if(!$scope.secondClick[index]){
// Execute first-click logic (call select function with the id).
$scope.secondClick[index] = true;
}
else{
// Execute second-click logic (call changeurl function with the id, userName, and type).
}
}
関数にインデックスを付けて、それらを操作しようとしました。ネストされた ng-repeat のため、インデックス '0' を取得しています。.