仅在定义参数时才使用ui-sref

时间:2016-07-26 10:05:38

标签: javascript angularjs routing angular-ui-router angularjs-routing

以下是我的以下代码:

视图:

  google.charts.load('current', {'packages':['corechart']});
  google.charts.setOnLoadCallback(drawChart);
  function drawChart() {

    var data = google.visualization.arrayToDataTable([
      ['Task', 'Hours per Day'],
      ['Work',     11],
      ['Eat',      2],
      ['Commute',  2],
      ['Watch TV', 2],
      ['Sleep',    7]
    ]);

    var options = {
      title: 'My Daily Activities'
    };

    var chart = new google.visualization.PieChart(document.getElementById('piechart'));

    chart.draw(data, options);
  }

并在app.js中:

<div class="single-user" ui-sref-active="activeState" ui-sref="app.usersingle({id:item[0].id})">    
    <li class="userTicket">Total: {{item[0].nbtickets}}</li>
</div>

我希望只有在定义 .state('app.usersingle',{ url:"/user:id", templateUrl: "views/single_user.html", controller:"userCtrl", reloadOnSearch:true }) 后才能点击div {来自我的item[0].id)。 我怎样才能做到这一点。因为当ui-sref未定义时,它会加载具有错误的下一页。我想要的只是当item[0].id没有被定义时,它只是停留在页面中而什么都不做。 这是明确的解释吗?

1 个答案:

答案 0 :(得分:2)

您可以在ui-sref本身上执行条件化操作,在Id出现时您可以重定向到其他状态,其他状态重定向到.

ui-sref="{{ item[0].id ? 'app.usersingle({id:item[0].id})': '.'}}"

this answer

取得参考资料