Javascript AngularJs-绑定在参数中传递给来自不同控制器的对象

Javascript AngularJs-绑定在参数中传递给来自不同控制器的对象,javascript,angularjs,model-view-controller,ionic-framework,ionic,Javascript,Angularjs,Model View Controller,Ionic Framework,Ionic,我很难解决这个问题。我试图实现的是更新迭代对象,这些对象被传递到另一个控制器中的函数中 这是我的控制器- angular.module('eatmapp.controllers', ['eatmapp.services']) .controller('AppCtrl', function($scope) { $scope.intoCart = function(item) { if(item.type == 'variations'){ item = newIt

我很难解决这个问题。我试图实现的是更新迭代对象,这些对象被传递到另一个控制器中的函数中

这是我的控制器-

angular.module('eatmapp.controllers', ['eatmapp.services'])
.controller('AppCtrl', function($scope) {
   $scope.intoCart = function(item) {
      if(item.type == 'variations'){
        item = newItemObj;
      }
   }
})
.controller('BrowseCtrl', function($scope, dataService, $localstorage) {
    dataService.getItems().then(function(returnData) {
        $scope.items = returnData.products;
    })
});
以下是我的看法-

<div ng-controller="BrowseCtrl">
    <div class="list card product" ng-repeat="item in items" ng-click="intoCart(item)">
      <div class="item item-text-wrap">
          <span class="ifs-productcat" ng-repeat="category in item.categories">{{category}}<span ng-if="$index != item.categories.length - 1">,</span></span><br>
          <h3>{{item.title}}</h3>
          <h3>Rs.{{item.price}}</h3>
      </div>
  </div>
</div>

{{category}},
{{item.title} 卢比{{item.price}

在使用另一个控制器(AppCtrl)中的方法(intoCart)执行一些条件检查后,我需要使用在模板视图中实现的迭代中的newItemObject(ng repeat)更新item对象。我对javascript编程相当陌生,正在寻求帮助。

我喜欢的一种处理方法是使用服务作为setter和getter。问题是您必须将服务包含在需要访问它的每个控制器中,但是如果没有太多,那也没什么大不了的。比如说:

.service('userFirstName', function() {
      var userFirstNameProp;
      return {
        getter: function() {
          return userFirstNameProp;
        },
        setter: function(value) {
          userFirstNameProp = value;
        }
      };
    })   

然后您可以根据需要调用userFirstName.getter()或userFirstName.setter(“John”)。

我遇到的问题是无法访问控制器中的“ng repeat”子作用域。 我在控制器中使用'this.item'解决了这个问题,而不是传递整个对象或索引

HTML-

<div class="list card product" ng-repeat="item in items" ng-click="intoCart()"></div>

现在,每当我对“item”对象进行更改时,它都会自动更新视图中的范围(ng repeat)。

将该功能作为某项服务的一部分,然后您可以将该服务注入任何控制器并使用该功能。问题是什么?Ionic与此无关。抱歉,我删除了Ionic。这项工作是在爱奥尼亚,但它与它无关。我试过了。我甚至尝试在同一个控制器中使用一个函数。如果我错了,请纠正我,角度表不是在每次迭代中都会改变吗?如果满足某些条件,我想更新ng repeat中的每个项目。哦…如果另一个控制器中发生更改,您想更新/重新运行ng repeat吗?为了清楚起见,您正在更新控制器作用域中的值,而ng repeat似乎没有再次运行?是的。即使将整个item对象作为参数传递,我也无法访问controllee中ng repeat的子范围。无论如何,我解决了在控制器中使用“this.item”的问题。我本来打算建议查询父对象,但听起来好像你已经让它工作了!
angular.module('eatmapp.controllers', ['eatmapp.services'])
.controller('AppCtrl', function($scope) {
 $scope.intoCart = function() {
      item = this.item; // current (ng-click) child scope of ng-repeat 
      if(item.type == 'variations'){
        item = newItemObj;
      }
   }
})