首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >角:将数据传递给另一个Controlelr的服务

角:将数据传递给另一个Controlelr的服务
EN

Stack Overflow用户
提问于 2016-01-14 17:22:32
回答 2查看 30关注 0票数 0

所以,我有这样一个重复的项目列表。

代码语言:javascript
运行
复制
<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中查找该人。

任何帮助都是很棒的!

EN

Stack Overflow用户

回答已采纳

发布于 2016-01-14 17:44:07

服务不应该直接与DOM元素交互。DOM应该与指令/控制器交互。控制器应该与模型交互。

下面的示例演示如何将数据从控制器1发送到myFactory,然后控制器2从myFactory获取数据。

代码语言:javascript
运行
复制
  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;
  }
代码语言:javascript
运行
复制
<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>

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34795815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档