Javascript 使用ng hide根据条件显示/隐藏按钮

Javascript 使用ng hide根据条件显示/隐藏按钮,javascript,angularjs,Javascript,Angularjs,我的标记中有三个按钮,其中两个按钮目前处于隐藏状态。像这样: <button ng-click="validate()">Submit</button><br /> <button id="retryquiz" ng-hide="true" onclick="location.reload(true);">Retry</button> <button id="getCertificate" ng-hide="true" oncli

我的标记中有三个按钮,其中两个按钮目前处于隐藏状态。像这样:

<button ng-click="validate()">Submit</button><br />
<button id="retryquiz" ng-hide="true" onclick="location.reload(true);">Retry</button>
<button id="getCertificate" ng-hide="true" onclick="printDoc()">Print Doc</button>
提交
重试 打印单据
现在我需要做的是让ng hide以某种方式计算来自validate()函数的值,并基于“if”语句再次显示其中一个。例如,如果验证的结果超过50%,则会显示打印文档,如果小于50%,则只会显示重试按钮


如何将它的HTML部分附加到我的.js文件中?

最好在作用域中设置一个函数,根据您的条件返回布尔值,尤其是当您的条件变得更复杂时。您可以在控制器上设置条件或使用参数:

<button id="retryquiz" ng-hide="hideRetry()" onclick="location.reload(true);">Retry</button>

这样,如果
$scope.validate()
的结果高于50%,则“重试”按钮将隐藏。

最好在作用域上设置一个函数,根据您的条件返回布尔值,特别是当您的条件变得更复杂时。您可以在控制器上设置条件或使用参数:

<button id="retryquiz" ng-hide="hideRetry()" onclick="location.reload(true);">Retry</button>

这样,如果
$scope.validate()
的结果高于50%,则“重试”按钮将隐藏。

我建议不要使用渐变,而是使用显式状态。在validate函数中,应该设置一个变量

$scope.validate = function(){
  //some work...

  $scope.status == validationResult;
}
然后根据状态设置
ng hide
s:

<button id="retryquiz" ng-hide="status=='retry'" onclick="location.reload(true);">Retry</button>
<button id="getCertificate" ng-hide="status=='print'" onclick="printDoc()">Print Doc</button>
重试
打印单据

我建议不要使用渐变,而是使用显式状态。在validate函数中,应该设置一个变量

$scope.validate = function(){
  //some work...

  $scope.status == validationResult;
}
然后根据状态设置
ng hide
s:

<button id="retryquiz" ng-hide="status=='retry'" onclick="location.reload(true);">Retry</button>
<button id="getCertificate" ng-hide="status=='print'" onclick="printDoc()">Print Doc</button>
重试
打印单据
Inside validate()使用您喜欢的任何逻辑设置两个变量,例如

$scope.showRetryButton = result < 0.5
$scope.showCertificateButton = result > 0.5
$scope.showRetryButton=结果<0.5
$scope.showCertificateButton=结果>0.5
然后在你的html中

<button id="retryquiz" ng-show=showRetryButton ....
<button id="getCertificate" ng-show=showCertificateButton ...
Inside validate()使用您喜欢的任何逻辑设置两个变量,例如

$scope.showRetryButton = result < 0.5
$scope.showCertificateButton = result > 0.5
$scope.showRetryButton=结果<0.5
$scope.showCertificateButton=结果>0.5
然后在你的html中

<button id="retryquiz" ng-show=showRetryButton ....
<button id="getCertificate" ng-show=showCertificateButton ...

取决于
validate
的确切返回值,类似于
ng show=“validate()>.5”
取决于
validate
的确切返回值,类似于
ng show=“validate()>.5”
但初始状态如何?重试不应该在开始时显示。@DavidGrinberg这只是一个语法解释和方法,因为他显然在寻找它。然后他可以选择使用任何他认为合适的逻辑。谢谢!当切换到ng show而不是ng-hide时,效果非常好。但是初始状态如何?重试不应该在开始时显示。@DavidGrinberg这只是一个语法解释和方法,因为他显然在寻找它。然后他可以选择使用任何他认为合适的逻辑。谢谢!当切换到ng show而不是ng-hide时,效果非常好。谢谢!我也会试试你的方法!非常感谢。我也会试试你的方法!谢谢。我也会尝试你的方法,看看有多少种方法可以奏效,这样我也可以学到一些新的东西。非常感谢。我也会尝试你的方法,看看有多少种方法可以奏效,这样我也可以学到一些新的东西。