Anglarjs controller間の通信
6518 ワード
ネット上のいくつかのコントローラ間の通信を見ました.そして、自分のプロジェクトに合わせていくつかのことをしました.ここでは主に2つの同級間のcontroller通信をします.
Html:
転載先:https://www.cnblogs.com/tiedaweishao/p/4798651.html
Html:
1 <html>
2 <script src="http://apps.bdimg.com/libs/angular.js/1.3.9/angular.min.js">script>
3 <body>
4 <div ng-app="app">
5 <div ng-controller="childCtr1">name :
6 <input ng-model="name" type="text" />
7 div>
8 <div ng-controller="childCtr2">Ctr1 name:
9 {{ctr1Name}}
10 div>
11 div>
12 body>
13 html>
上のhtmlコードは同じレベルのコントローラを2つ設置していますが、現在はchildCtr 2はchildCtr 1のパラメータを必要としています.以下はコントローラchild Ctr 1のコードです.1 angular.module("app", [])
2 .controller("childCtr1", function ($scope) {
3 $scope.$watch("name",function (){// “name", ;
4 //alert("123");
5 $scope.$emit("Ctr1NameChange", $scope.name);// Ctr1NameChange , $scope.name
6 });
7 });
以下はchildCtr 2のコードです.angular.module("app", [])
.controller("childCtr2", function ($scope) {
$scope.$on("Ctr1NameChange",// ”Ctr1NameChange“ , ,
function (event, msg) {
console.log("childCtr2", msg);
$scope.ctr1Name = msg;
});
});
以上はコントローラから分離されたファイルに対して異なる形式で書かれています.もちろん彼らを一つのページに統合することもできます. 1 angular.module("app", [])
2 .controller("childCtr1", function ($scope) {
3 $scope.$watch("name",function (){
4 //alert("123");
5 $scope.$emit("Ctr1NameChange", $scope.name);
6 });
7 }).controller("childCtr2", function ($scope) {
8 $scope.$on("Ctr1NameChange",
9
10 function (event, msg) {
11 console.log("childCtr2", msg);
12 $scope.ctr1Name = msg;
13 });
14 });
他にもコントローラ間の通信方法がたくさんあります.serverのfactoryを含めて、参考にしてください.http://jsbin.com/hopazo/5/edit?htmlcss,js,output転載先:https://www.cnblogs.com/tiedaweishao/p/4798651.html