如果条件在我的路由提供者

时间:2015-10-13 13:13:00

标签: javascript angularjs

在我的$routeProvider我有类似的东西,

$routeProvider.when('/person/:name/:label', { ...

我想要做的是添加一个特殊情况,以帮助我显示不同的模板:name,例如,等于'John'。

我尝试的是使用这样的东西:

$routeProvider.when('/person/:name/:label', {
  templateUrl: function(param) {
    if(param=='John') {
      return 'john.html'; 
    }
     return 'generic.html';
  }, 
  controller: 'PersonCtrl'
});

我不断获得generic.html。如何访问name变量并解决此问题?

1 个答案:

答案 0 :(得分:1)

传递给templateUrl函数的params对象就像$ routeParams一样访问。就像在$ routeParams中一样,您需要使用点运算符来访问已配置的属性。所以在你的情况下,它是self.Approve = ko.observable(false).extend({ equal: { params: true, message: 'check must be ticked' } });

params.name