在参考文献中我读到:
最后,重要的是要意识到所有Angular服务都是应用程序单例.这意味着每个注入器只有一个给定服务的实例.
但是这个简单的代码似乎不是单身
'use strict';
angular.module('animal', [])
.factory('Animal',function(){
return function(vocalization){
return {
vocalization:vocalization,
vocalize : function () {
console.log('vocalize: ' + this.vocalization);
}
}
}
});
angular.module('app', ['animal'])
.factory('Dog', function (Animal) {
return Animal('bark bark!');
})
.factory('Cat', function (Animal) {
return Animal('meeeooooow');
})
.controller('MainCtrl',function($scope,Cat,Dog){
$scope.cat = Cat;
$scope.dog = Dog;
console.log($scope.cat);
console.log($scope.dog);
//$scope.cat = Cat;
});
Run Code Online (Sandbox Code Playgroud)
我有点困惑你能解释一下我的问题是什么吗?
更新1 可能是我不是最流行的工具,但是@Khanh回复它将是一个更好的解释,在参考中它不是很清楚.
更新2
'use strict';
angular.module('animal', [])
.factory('Animal',function(){
return {
vocalization:'',
vocalize : function () {
console.log('vocalize: ' + this.vocalization);
} …
Run Code Online (Sandbox Code Playgroud) 我正在开发一个Angular库,并寻找一种使用装饰器模式扩展指令的方法:
angular.module('myApp', []).decorator('originaldirectiveDirective', [
'$delegate', function($delegate) {
var originalLinkFn;
originalLinkFn = $delegate[0].link;
return $delegate;
}
]);
Run Code Online (Sandbox Code Playgroud)
使用这种模式增强原始指令的最佳方法是什么?(示例用法:在指令上有额外的监视或额外的事件监听器,而不直接修改它的代码).