Angular

时间:2015-11-13 22:24:29

标签: javascript jquery html angularjs

我试图想出一个简单的方法来交换角度js中的按钮中的链接,我在可以使用的范围内有可用的属性,但我不确定如何实现。我试图改变的链接是在' onClick'按钮中的属性。再次感谢,这是我的代码:

<div class="instructions-button">
      <button
      type="button"
      class="halo-modal-action-button external-instructions"
      onClick="window.open('https://mysite/foo');"
      window="new"
      ng-disabled=""
      ng-click=""
      data-bs-enabled=""
      >Instructions</button>
    </div>

我正在尝试制作一个简单的条件来显示:

'mysite/foo || mysite/bar' 

但我不确定如何使其发挥作用。

3 个答案:

答案 0 :(得分:5)

不要在按钮上使用onClick事件,虽然它可能会让你觉得很奇怪,因为你来自vanilla JS,你应该使用ng-click

<button
      class="halo-modal-action-button external-instructions"
      ng-disabled=""
      ng-click="openWindow()"
      data-bs-enabled=""
      >Instructions</button>

和内部控制器

$scope.openWindow = function(){
    if ( condition ) {
        open('http:foo.bar')
    } else {
        open('http:bar.foo')
    }
}

答案 1 :(得分:2)

两种简单的方法。

1)两个按钮并使用ng-show有条件地显示一个按钮。

<button ... ng-show="conditionShowFooTrue" >
<button ... ng-show="conditionShowBarTrue" >

2)使用ng-click调用范围函数,以有条件地设置其他答案所建议的网址。

答案 2 :(得分:1)

如果你正在使用路线,你可以像@Akxe说的那样使用ng-click,并使用控制器中的$location服务,执行:

$scope.changeLocation = function(){
  if(condition)
  {
    $location.path('/foo');
  } else
  {
    $location.path('/bar');
  }
};

我认为这将是Angular的做法。