此代码来自angularjs TodoMVC。您可以看到routeConfig的resolve
对象,它从localStorage获取todos(如果使用了localStorage)。 localStorage代码在另一个文件todoStorage.js中的服务中创建。我的问题是,在这个配置中,todo记录的获取是如何提供该服务(或者一般的代码如何)?我不得不以某种方式为下面的代码提供服务吗?
angular.module('todomvc', ['ngRoute'])
.config(function ($routeProvider) {
'use strict';
var routeConfig = {
controller: 'TodoCtrl',
templateUrl: 'todomvc-index.html',
resolve: {
store: function (todoStorage) {
// Get the correct module (API or localStorage).
return todoStorage.then(function (module) {
module.get(); // Fetch the todo records in the background.
return module;
});
}
}
};
答案 0 :(得分:0)
resolve
property是键值对的哈希/字典。
键是可用于注射的值的最终名称。值可以是一个可注入的函数,Angular会自动将依赖项传递给它。
所以当你看到这段代码时:
store: function (todoStorage) { ... }
Angular会自动从参数名称推断'todoStorage'
服务,然后自动注入它。当然它也支持数组表示法:
store: ['todoStorage', function (todoStorage) { ... }]
在Angular中,几乎所有东西都可以dependency injected。