我正在学习Angular并且我已经看到了一些示例,其中$ routeProvider的配置如下:
app.config(function ($routeProvider) {
$routeProvider.
when("/drivers", { templateUrl: "partials/drivers.html", controller: "driversController" }).
when("/drivers/:id", { templateUrl: "partials/driver.html", controller: "driverController" }).
otherwise({ redirectTo: "/drivers" });
});
在其他示例中,它的配置如下:
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider.
when("/drivers", { templateUrl: "partials/drivers.html", controller: "driversController" }).
when("/drivers/:id", { templateUrl: "partials/driver.html", controller: "driverController" }).
otherwise({ redirectTo: "/drivers" });
}]);
它们似乎都以相同的方式工作,但我想知道通过发送一个带有' $ routeProvider'的数组调用配置有什么区别?首先作为字符串,然后直接使用函数调用,直接使用函数,如第一个示例中所示。
感谢。
答案 0 :(得分:2)
This is not specific to $routeProvider, it's every module you can declare dependencies for.
您所看到的是注入依赖项的三种不同方式中的两种(内联数组和隐式,另一种是$ inject属性),数组注入更好,因为缩小会导致问题,因为它不在数组语法中:
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider.
when("/drivers", { templateUrl: "partials/drivers.html", controller: "driversController" }).
when("/drivers/:id", { templateUrl: "partials/driver.html", controller: "driverController" }).
otherwise({ redirectTo: "/drivers" });
}]);
答案 1 :(得分:0)
将方括号之间的服务名称(要注入)包装到函数本身之间会使其缩小安全性。这是内联注释的方式。