0

내 질문에 대한 답을 찾으려고 노력했지만 아무런 도움이되지 않았습니다. 필요한 것은 if 표현식이없는 ng-click 내에서 if 조건을 사용하는 경우와이 조건이 참인 경우 어떻게되는지를 나타내는 바로 가기입니다.ng-click without else가 없으면 바로 가기

ng-click="ctrl.isBoolean ? 'yes' : 'no'"은 동일하다 :이 같은 경우에 따라서 일반적으로 당신은 바로 가기를 작성합니다

if(isBoolean) { 
    alert('yes'); 
} else { 
    alert('no'); 
} 

하지만 지금은 그냥 경우 조건이 사실이라면 무슨 일이 있었는지하는 부분이 필요합니다.

ng-click="ctrl.isBoolean ? 'yes'" 

내가이 일이 가능하기 때문에이이 유사 할 수 있다고 생각 : : 그것은 작동하지 않았다

if(isBoolean) { 
    alert('yes') 
} 

이 시도. 어떤 아이디어? 나는 이것이 가능하기를 바란다.

+0

'ng-click = "ctrl.isBoolean? 'yes': void (0)"' – Harish

답변

1

내가 하나가 당신의 요구에 맞게 희망, 몇 가지 솔루션입니다 :

1)는 컨트롤러에서이 함수를 만듭니다. bool을 확인하고 true 인 경우 func을 실행합니다.

$scope.if = function(bool, func) { 
    if(bool) func(); 
}; 

당신은 HTML에 바로 가기로 사용할 수 있습니다 : {{if(myBool, myAction)}}

나는이 솔루션에 대한 demo Fiddle 만들었습니다.


2)ng-click="ctrl.isBoolean && yourAction()"

당신의 조건이 만족 될 경우가 yourAction()를 실행합니다.


3)ng-click="ctrl.isBoolean ? yourAction() : null"

그것은 삼항 연산자를 사용하고 synthax이 분명하다 isBoolean == true 경우, 당신은 yourAction(), 아무 것도 실행하지 않습니다.


4)ng-click="{{check(ctrl.isBoolean)}}"와 컨트롤러 : 제 생각에는

$scope.check = function(toCheck) { 
    if(toCheck) yourAction(); 
} 

이는 "Angularest"방법이지만, 당신이 원하는대로 당신은 바로이 없습니다. ..

+1

안녕하세요, 고마워요. 3 괜찮 았어! 건배 :) – MrBuggy

0
ng-click=" ctrl.isBoolean && showAlert('yes')" 

당신은 당신의 컨트롤러에서 다음 ng-show

<button ng-show="ctrl.isBoolean === 'yes'" ng-click="ctrl.Boolean('yes')>Boolean</button> 
<button ng-show="ctrl.isBoolean === 'no'" ng-click="ctrl.Boolean('no')>Boolean</button> 

를 사용, 난 당신이 두 요소를해야한다 생각이

'use strict'; 
 
angular.module('demoApp',[ 
 
    
 
    
 
]) 
 

 
    
 
// Home controller 
 
.controller('AppCtrl', ['$scope',function($scope) { 
 

 
    
 

 
$scope.ctrl = { 
 
    isBoolean : true 
 
} 
 

 
$scope.showAlert = function(msg){ 
 
alert(msg); 
 
}; 
 

 

 
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="demoApp" ng-controller="AppCtrl"> 
 
<button type="button" ng-click=" ctrl.isBoolean && showAlert('yes')"> 
 
Click here 
 
</button> 
 
    </div>

+0

실제로 작동하지 않았지만 어쨌든 고마워요 :) – MrBuggy

0

같은 시도 할 수 있습니다 :

,691를 여기
$scope.Boolean = function(val) { 
    $scope.isBoolean = val; 
    $scope.isBoolean === 'yes' ? alert('yes') : alert('no'); 
} 
+0

고마워요. 대답은,하지만 내가 필요로하는 것은 방법이 없으면 다른 식 또는 정보없이 바로 가기를 만드는 방법이 가능하거나하지 ... 질문에주의를 기울여, 비슷한 해결 방법을 알고 있지만 내 질문은 충분히 명확하다 ... – MrBuggy