加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在Angular JS控制器之间传递数据?

发布时间:2020-12-17 09:26:07 所属栏目:安全 来源:网络整理
导读:我有一个基本的控制器,显示我的产品, App.controller('ProductCtrl',function($scope,$productFactory){ $productFactory.get().success(function(data){ $scope.products = data; });}); 在我看来,我在列表中显示此产品 ul li ng-repeat="product as pro
我有一个基本的控制器,显示我的产品,
App.controller('ProductCtrl',function($scope,$productFactory){
     $productFactory.get().success(function(data){
           $scope.products = data;
     });
});

在我看来,我在列表中显示此产品

<ul>
    <li ng-repeat="product as products">
        {{product.name}}
    </li>
</ul

我想做的是当有人点击产品名称,我有另一个视图名为cart,其中添加了该产品。

<ul class="cart">
      <li>
          //click one added here
      </li>
      <li>
          //click two added here
      </li>
 </ul>

所以我的怀疑是,如何通过这个点击的产品从第一个控制器到第二?我认为手推车也应该是一个控制器。

我处理点击事件使用指令。还有我觉得我应该使用服务实现上述功能只是不能怎么样?因为购物车将预定义数量的产品添加可能是5/10取决于哪个页面用户是。所以我想保持这个通用。

更新:

我创建了一个服务广播和在第二个控制器我收到它。现在查询是如何更新dom?因为我的下拉产品列表是相当硬编码。

从描述,似乎你应该使用一个服务。查看 http://egghead.io/lessons/angularjs-sharing-data-between-controllers和 AngularJS Service Passing Data Between Controllers看一些例子。

您可以定义您的产品服务:

app.service('productService',function() {
  var productList = [];

  var addProduct = function(newObj) {
      productList.push(newObj);
  };

  var getProducts = function(){
      return productList;
  };

  return {
    addProduct: addProduct,getProducts: getProducts
  };

});

依赖注入服务到两个控制器。

在ProductController中,定义一些将所选对象添加到数组的操作:

app.controller('ProductController',productService) {
    $scope.callToAddToProductList = function(currObj){
        productService.addProduct(currObj);
    };
});

在您的CartController中,从服务获取产品:

app.controller('CartController',productService) {
    $scope.products = productService.getProducts();
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读