将视图中的变量传递给$ routeProvider? - angularjs

时间:2015-02-08 10:35:00

标签: javascript angularjs

想知道是否有特定角度的'尝试实现这一目标的方法。 我有一个包含一些观点的页面。当用户单击锚点时,视图会发生变化,这很简单。我很好奇的是,如果用户点击,是否可以存储变量(比如跨度),然后将其传递给$routeProvider以更加动态地加载内容?

因此对于锚标记#name1,当显示该视图时,我可以传递" name1"将nameHolder作为变量来加载一些具有相同名称的文件。

HTML

<a href="#name1"><span>name1</span></a>

JS

var nameHolder = [];
var sampleApp = angular.module('sampleApp', ['ngRoute']);

sampleApp.config(['$routeProvider',
  function($routeProvider) {
    $routeProvider.
      when('/' + nameHolder, {
        templateUrl: 'templates/individkcd.html',
        controller: 'individ',
        nameofuser: nameHolder
    }).
      when('/', {
        templateUrl: 'templates/home.html'
    });
}]);


sampleApp.controller('individ', function($scope, $route) {

    $scope.img =  $route.current.nameHolder;


});

感谢您的任何信息。

更新: 新线程的解决方案。

angular js - passing a variable into $routeProvider

1 个答案:

答案 0 :(得分:2)

您需要将参数添加到$routeProvider模板中:

sampleApp.config(['$routeProvider',
  function($routeProvider) {
    $routeProvider.
      when('/' + nameHolder, {
        templateUrl: 'templates/individkcd/:nameHolder',
        controller: 'individ'
    }).
      when('/', {
        templateUrl: 'templates/home.html'
    });
}]);

然后在目标控制器中使用$routeParams

sampleApp.controller('individ', function($scope, $routeParams) {

    $scope.img =  $routeParams.nameHolder;


});

来自上面链接的$ routeProvider文档:

  

path可以包含以冒号开头的命名组:例如:名称。所有   直到下一个斜杠的字符匹配并存储在$ routeParams中   路线匹配时在给定名称下