从我的理解你基本上想要在两个控制器之间进行通信。
第一个本能可能是创建一个父范围并将数据绑定到它,但有一个更好的方法,一个服务。
您将数据绑定到这个服务,它可以作为您的控制器之间的信使,像这样:
angular.module('app', [])
.factory('Data', dataService)
.controller('firstController', firstController)
.controller('secondController', secondController);
function dataService() {
return { message: "I'm data from a service" };
}
function firstController($scope, Data) {
$scope.data = Data;
}
function secondController($scope, Data) {
$scope.data = Data;
}
和标记:
<h2>First controller</h2>
<div ng-controller="firstController">
<input type="text" ng-model=data.message />
{{ data.message }}
</div>
<h2>Second controller</h2>
<div ng-controller="secondController">
<input type="text" ng-model=data.message />
{{ data.message }}
</div>
Demo Explained very good at egghead.io
在链接,我必须使用'ng-href'还是正常的'href'也好? – Tiwaz89 2014-10-30 10:37:02
它很好地使用'ng-href',因为**可能是**'$ scope.dataToFoward'变量在您点击链接时未在控制器中设置。 – 2014-10-30 10:39:00
如果在您点击链接'href =“#/ sub/{{dataToFoward}}”'时未设置'$ scope.dataToFoward'将导致'404'错误,但是'ng-href =“#/ sub/{{dataToFoward}}“'只在'dataToFoward'设置后才起链接作用,在'dataToFoward'设置之前它不会点击。 – 2014-10-30 10:45:19