1

我定义了一个路由提供程序:

$routeProvider.when('/interview', {
    controller: 'Interview',
    templateUrl: function(parms) {
    return parms.target + '/partials/Interview.html';
    }
});

但我得到以下异常:

Uncaught TypeError: Object function (parms) {
                   return 'partials/Interview.html';
                } has no method 'match'

通过断点,我发现 AngularJS 认为我的函数是一个 URL。

完全糊涂了。

4

1 回答 1

1

您可能正在使用不允许templateUrl成为函数的 angular 的稳定版本(1.0.8)。您应该尝试使用最新的候选版本 1.2-rc3。

$routeProvider 的 1.0.8 文档

templateUrl – {string=} – ngView 应该使用的 html 模板的路径。

$routeProvider 的 1.2-rc3 文档

templateUrl – {string=|function()=} – 返回 ngView 应该使用的 html 模板路径的路径或函数。

如果 templateUrl 是一个函数,它将使用以下参数调用:

{Array.} - 通过应用当前路由从当前 $location.path() 中提取的路由参数

于 2013-10-30T20:46:17.697 回答