将$ routeProvider中的变量传递给View

时间:2014-12-21 11:38:47

标签: angularjs

如何将变量从$routeProvider传递到视图文件:

app.config(['$routeProvider', function ($routeProvider) {
  $routeProvider
    .when('/send-money', {
      templateUrl: 'partials/send-money.html',
      controller: 'PageCtrl'
    })
    .when('/receive-money', {
      someURL: 'goToSomePage',
      templateUrl: 'partials/receive-money.html',
      controller: 'PageCtrl'
    })
}]);

正如您可以注意到的那样: .when('/receive-money')我声明了(someURL: 'goToSomePage') 但.when('/send-money')我还没有声明(someURL

以下是我希望在没有控制器帮助的情况下使其工作的代码。那可能吗 ?即使我不确定像ng-if="someURL"这样的东西也会起作用。

<div ng-if="someURL">
  <a ng-href="someURL" class="nav-back"> <i class="ico-back"></i> </a>
<div>

1 个答案:

答案 0 :(得分:2)

如果您不想使用控制器,可以使用run块将路由服务的引用传递到$ rootScope,从中您可以检查当前路由是否具有属性someURL

app.run(function($route, $rootScope) {
    $rootScope.$route = $route;
});

现在在模板中,您可以在$route.current中使用ngIf

<div ng-if="$route.current.someURL">
    <a ng-href="someURL" class="nav-back"><i class="ico-back"></i></a>
</div>

演示:http://plnkr.co/edit/3XUl0QprIAj1PcnnHx9Q?p=preview

相关问题