gpt4 book ai didi

javascript - AngularJs - 将参数传递到来自不同 Controller 的对象的绑定(bind)

转载 作者:行者123 更新时间:2023-11-27 23:54:52 25 4
gpt4 key购买 nike

我在解决这个问题时遇到了困难。我想要实现的是更新传递给不同 Controller 中的函数的迭代对象。

这是我的 Controller -

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>

在另一个 Controller (AppCtrl)中使用方法(intoCart)进行一些条件检查后,我需要在模板 View 中实现的迭代(ng-repeat)中使用newItemObject更新项目对象。我对 javascript 编程相当陌生,正在寻求一些帮助。

最佳答案

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

HTML -

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

Controller -

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;
}
}
})

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

关于javascript - AngularJs - 将参数传递到来自不同 Controller 的对象的绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32361722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com