我正在努力理解主题"常数" ,"价值观"和"装饰者"在角度js我从文件中得到的是他们是一些特殊的服务和他们之间的差异。 但是,如果有人可以通过一些例子详细说明他们使用了什么。我已经用Google搜索了,但还没有找到任何有用的文章。
答案 0 :(得分:0)
<强>恒强>
可以在任何地方注入常数。一个常数不可能 被装饰者拦截,这意味着一个常数的值 永远不应该改变(虽然它仍然可以改变它 以编程方式在Angular 1.x)。
angular.module('app', []);
app.constant('MOVIE_TITLE', 'The Matrix');
.controller('MyController', function (MOVIE_TITLE) {
expect(MOVIE_TITLE).toEqual('The Matrix');
});
<强>值强>
值只不过是一个简单的可注射值。价值可以 是一个字符串,数字,但也是一个函数。价值与常数不同 在该值中不能注入配置,但它可以 被装饰师拦截。
angular.module('app', []);
.value('movieTitle', 'The Matrix');
.controller('MyController', function (movieTitle) {
expect(movieTitle).toEqual('The Matrix');
})
<强>装饰强>
装饰者可以修改或封装其他提供者。有一个 异常并且常量无法修饰。
var app = angular.module('app', []);
app.value('movieTitle', 'The Matrix');
app.config(function ($provide) {
$provide.decorator('movieTitle', function ($delegate) {
return $delegate + ' - starring Keanu Reeves';
});
});
app.controller('MyController', function (movieTitle) {
expect(movieTitle).toEqual('The Matrix - starring Keanu Reeves');
});
希望它有所帮助。