所以,我有这样一个重复的项目列表。
<li><a ng-click="{{person.id}}">Name of Person</a></li>我想要创建一个服务,在这个服务中,只要单击,我就可以收集该person.id并将它传递给另一个在另一条路径上的控制器。
这通常非常简单,只使用url和路由params,但是在这种情况下,重要的是不要在浏览器url中公开person.id。
-更多的背景
无论服务与否,我都需要提取{{person.Id},这是通过人员列表页上的ng重复获得的数据。
单击时,我将从人员控制器移到带有"person“控制器的新路径。我需要那个" person“控制器才能拉出在上一条路由上单击的{Person.ID},以便在DB中查找该人。
任何帮助都是很棒的!
发布于 2016-01-14 17:44:07
服务不应该直接与DOM元素交互。DOM应该与指令/控制器交互。控制器应该与模型交互。
下面的示例演示如何将数据从控制器1发送到myFactory,然后控制器2从myFactory获取数据。
angular
.module('app', [])
.factory('myFactory', myFactory)
.controller('myCtrl1', myCtrl1)
.controller('myCtrl2', myCtrl2);
function myFactory() {
var fromSender = null;
return {
setSender: function(sender) {
fromSender = sender;
},
getSender: function() {
return fromSender;
}
};
}
function myCtrl1(myFactory) {
var vm = this;
vm.setSender = myFactory.setSender;
}
function myCtrl2(myFactory) {
var vm = this;
vm.getSender = myFactory.getSender;
}<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.js"></script>
<div ng-app="app">
<div ng-controller="myCtrl1 as ctrl1">
Controller 1: <br>
<button ng-click="ctrl1.setSender('from controller 1')">Send to myFactory</button>
</div>
<hr>
<div ng-controller="myCtrl2 as ctrl2">
Controller 2: <br>
value from ctrl1 via myFactory: {{ctrl2.getSender()}}
</div>
</div>
https://stackoverflow.com/questions/34795815
复制相似问题