angularjs

时间:2016-11-14 12:53:52

标签: javascript angularjs

我正在努力理解主题"常数" ,"价值观"和"装饰者"在角度js我从文件中得到的是他们是一些特殊的服务和他们之间的差异。  但是,如果有人可以通过一些例子详细说明他们使用了什么。我已经用Google搜索了,但还没有找到任何有用的文章。

1 个答案:

答案 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');
});

希望它有所帮助。