angular如何实现不同模块的变量共享

来源:互联网 发布:美工外包tmyunying 编辑:程序博客网 时间:2024/05/17 08:38

因为一个模块可以有多个controller,所以不同的controler的变量有自己的作用域范围。如何实现不同的controller的变量共享呢?可以用上一章讲的factory的方式来自定义一个服务,然后将这个服务自动注入到各个controller里面。
html

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title>    <script type="text/javascript" src="angular.js"></script>    <script type="text/javascript" src="模块.js"></script></head><body ng-app="App">    <div ng-controller="democontroller">        姓名:<input type="text" ng-model="data.name">        <p>{{data.name}}</p>    </div>    <div ng-controller="democontroller2">        {{data.name}}    </div></body></html>

js

var app=angular.module("App",[],function($provide){    //自定义一个工厂,$provide是angular自动注入的,然后创建一个服务对象    $provide.factory("data",function(){        return {name:''};    })    //自定义服务,返回的必须是对象,字符串,数字这样的基本类型不行,工厂可以。他们两个功能差不多    $provide.service("xx2",function(){        return ["上海"];    })});app.controller("democontroller",function($scope,data){    $scope.data=data}) app.controller("democontroller2",function($scope,data){    $scope.data=data}) 
阅读全文
0 0
原创粉丝点击