无法弄清楚如何使用ui-route

时间:2013-05-01 01:34:04

标签: javascript angularjs angular-ui

我无法弄清楚如何正确使用ui-route,angular-ui网站上的示例无济于事。

这是我的代码。我想实现一个简单的导航菜单。当路线与物品的路线匹配时,我想显示<span>,否则我想显示<a>。我希望$uiRoute能够反映当前的路线,但显然它并不是因为无论路线是什么,我都会在输出中得到<span>元素。

http://jsbin.com/ugefoq/2/edit

<!DOCTYPE html>
<html ng-app="app">
  <head>
    <meta charset=utf-8 />
    <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.1/angular.min.js" type="text/javascript"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui.min.js" type="text/javascript"></script>
    <script type="text/javascript">
      angular.module('app', ['ng', 'ui']);
    </script>
  </head>
  <body>
    <ul>
      <li ui-route="#/link0">
        <a ui-if="$uiRoute" ng-href="#/link0">link0</a>
        <span ui-if="!$uiRoute">link0</span>
      </li>
      <li ui-route="#/link1">
        <a ui-if="$uiRoute" ng-href="#/link1">link1</a>
        <span ui-if="!$uiRoute">link1</span>
      </li>
    </ul>
  </body>
</html>

1 个答案:

答案 0 :(得分:1)

看起来你说得对,除了基于你的描述,你的ui-if陈述被颠倒了。现在,你的说法,如果网址匹配我的href,则显示链接,如果不匹配则显示范围。

另外请注意,如果您在此处执行单页应用程序,则可能不希望使用ui-if,因为它会完全删除元素,这意味着您无法在以后路由更改时动态显示它。