首先看看injector 怎么用
js代码:
代码语言:javascript复制var app = angular.module("myApp",[]);
app.factory("game",function(){
return {
title:"StarCraft"
}
});
//创建一个injector 参数为绑定的模板 会返回一个injector对象
//通过返回的对象你可以调用模板里面的各种服务
angular.injector(["myApp"]).invoke(function(game){
alert(game.title);
})
app.controller("AppController",function($scope,game){
$scope.title = game.title;
});
HTML代码:
代码语言:javascript复制<!DOCTYPE html>
<html ng-app="myApp">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div ng-controller="AppController">{{title}}</div>
<script type="text/javascript" src="../js/angular.min.js"></script>
<script type="text/javascript" src="../js/injector.js"></script>
</body>
</html>
这个例子 运行效果就是浏览器一打开 就会弹出 StarCraft 当你点击确定之后,页面的元素才 开始从 {{title}}变成 StarCraft
然后JS代码还可以换种方式写:
代码语言:javascript复制var app = angular.module("myApp",[]);
app.factory("game",function(){
return {
title:"StarCraft"
}
});
//创建一个injector 参数为绑定的模板 会返回一个injector对象
//通过返回的对象你可以调用模板里面的各种服务
//这种做法会导致所有的当前的模板下面的控制器都会有这个服务 就是弹出game.title
//如非特殊场景,不建议使用
angular.injector(["myApp"]).invoke(function(game){
alert(game.title);
})
app.controller("AppController",function($scope,game){
$scope.title = game.title;
});
app.controller("OtherController",function($scope,$injector) {
//$injector 服务在angularJS中已经有了 就不需要使用 angular.injector(["myApp"])显示绑定了
$injector.invoke(function(game){
$scope.title = game.title;
alert(game.title);
});
});