【问题标题】:AngularJS open Link if condition如果条件,AngularJS打开链接
【发布时间】:2016-06-20 19:35:39
【问题描述】:

我想检查 AngularJS 中 href 内的 if 条件:

<a class="button button-block" href="if(cond){#/app/abc}else{nothing}" ng-click="doSomething()">Suchen</a>

其中 cond 是一个可以为真或假的条件,并且只有在满足该条件时才可以打开链接。

有谁知道这是否可行,如果可以,怎么办?

【问题讨论】:

  • 是的,当然只需使用 ng-if

标签: javascript android angularjs ionic-framework cross-platform


【解决方案1】:

您可以有类似下面的内容,当cond 为真时,它将创建一个带有 URL 的 href,否则它将创建一个不会重定向到任何地方的空白 href

ng-href="{{cond? '#/app/abc': ''}}"

否则,请从锚标记中删除 href,并在 $location.path('#/app/abc') 的帮助下处理来自 ng-clickdoSomething 函数本身的重定向逻辑 OR $state.go(取决于哪个您正在使用的路由器引擎)进行重定向。

【讨论】:

  • 我知道按照你所说的用 $state.go('abc.def');在控制器 javascript 文件中,如此处所述 Angular state.go
  • @FranzHuber23 如果您使用的是ui-router,那么使用$state.go 绝对没问题
  • 是的,我现在用的是ui-router,谢谢大家的回答:)
【解决方案2】:

要使用 ng-if 达到预期结果,您可以使用以下选项

<div ng-if="cond" ng-show="cond">
  <a class="button button-block" href="#/app/abc" ng-click="doSomething()" ng-model="cond">Suchen</a>
</div>
<a class="button button-block" href="nothing" ng-click="doSomething()" ng-hide="cond" ng-model="cond">abc</a>

JS:

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.cond='sai';// comment to see abc link with href= nothing and uncomment to show href with mentioned path
});

为了区别,我用了不同的名字——Suchen 和 abc

Codepen-http://codepen.io/nagasai/pen/NrRoay

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    • 2014-06-24
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多