function SomeClass(greeter) {
this.greeter = greeter
}
SomeClass.prototype.doSomething = function(name) {
this.greeter.greet(name);
}
<!DOCTYPE HTML>
<html lang="zh-cn" ng-app="MainApp">
<head>
<meta charset="UTF-8">
<title>injector</title>
</head>
<body>
<div ng-controller="MyController">
<button ng-click="sayHello()">Say Hello</button>
</div>
<script src="../angular-1.0.1.js" type="text/javascript"></script>
<script type="text/javascript">
//创建OtherModule这个module,相当于外部的module
var otherModule = angular.module("OtherModule", []);
//教injector如何创建"greeter"
//注意,greeter本身需要依赖$window
otherModule.factory("greeter", function ($window) {
//这里是一个工厂方法,负责创建greet服务
return {
greet:function (text) {
$window.alert(text);
}
};
});
//下面展示在非当前module中,通过injector调用greet方法:
//从module中创建新的injector
//这个步骤通常由angular启动时自动完成。
//必须引入'ng',angular的东东
//故意颠倒顺序,暂时证实这玩意的顺序是无所谓的。。
var injector = angular.injector(['OtherModule','ng']);
//请求greeter这个依赖。
var g = injector.get("greeter");
//直接调用它~
g.greet("Hi~My Little Dada~");
//这里是当前的主app,需要依赖OtherModule
var mainApp = angular.module("MainApp", ["OtherModule"]);
//留意Controller的定义函数的参数,在这里直接注入$scope、greeter。
// greeter服务是在OtherModule中的
mainApp.controller("MyController",function MyController($scope,greeter) {
$scope.sayHello = function() {
greeter.greet("Hello Kitty~~");
};
}
);
//ng-controller已经在背后默默地做了这个事情
//injector.instantiate(MyController);
</script>
</body>
</html>
function MyController($scope, greeter) {
...
}
var MyController = function(renamed$scope, renamedGreeter) {
...
}
//这里依赖的东东,如果不在当前的module中,它还是不认识的。
//需要在当前module中先依赖对应的module。跟之前的例子差不多。但我不知道这是不是正确的方法。
MyController.$inject = ['$scope', 'greeter'];
someModule.factory('greeter', function($window) {
...;
});
var greeterFactory = function(renamed$window) {
...;
};
greeterFactory.$inject = ['$window'];
someModule.factory('greeter', greeterFactory);
someModule.factory('greeter', ['$window', function(renamed$window) {
...;
}]);
var MyController = function(dep1, dep2) {
...
}
MyController.$inject = ['dep1', 'dep2'];
MyController.prototype.aMethod = function() {
...
}
angualar.module('myModule', []).
config(['depProvider', function(depProvider){
...
}]).
factory('serviceId', ['depService', function(depService) {
...
}]).
directive('directiveName', ['depService', function(depService) {
...
}]).
filter('filterName', ['depService', function(depService) {
...
}]).
run(['depService', function(depService) {
...
}]);
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有