Angularjs 将变量从$routeProvider传递到视图
如何将变量从Angularjs 将变量从$routeProvider传递到视图,angularjs,Angularjs,如何将变量从$routeProvider传递到视图文件: app.config(['$routeProvider', function ($routeProvider) { $routeProvider .when('/send-money', { templateUrl: 'partials/send-money.html', controller: 'PageCtrl' }) .when('/receive-money', {
$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>
如果您不想使用控制器,可以使用
run
块将对路由服务的引用传递到$rootScope中,从中可以检查当前路由是否具有属性someURL
:
app.run(function($route, $rootScope) {
$rootScope.$route = $route;
});
现在在模板中,您可以在ngIf
中使用$route.current
:
<div ng-if="$route.current.someURL">
<a ng-href="someURL" class="nav-back"><i class="ico-back"></i></a>
</div>
演示:在这种情况下,您需要控制器。如前所述,出于某些原因,我不想使用控制器谢谢@dfsq,我为使代码正常工作所做的唯一更改是:而不是ng href=“someURL”我已将其更改为ng href=“$route.current.someURL”。我做错了什么,或者我的更改有意义吗?你可以在ngHref中使用
$route.current.someURL
,它也可以工作。