我是棱角分明的新人,非常感谢你的帮助 我需要以下方面的帮助: 1.我有以下代码
<tr ng-repeat="user in page ">
<td class="tdContactsCentered">{{user.name}}<input type="hidden" name="cid" value="{{user.id}}" /></td>
<td class="tdContactsCentered" >{{user.accountNumber}}</td>
<td class="tdContactsCentered">{{user.serialNumber}}</td>
<td class="tdContactsCentered"><input type="text" ng-model="sdate" class="input-small" /> </td>
<td class="tdContactsCentered"><div class="input-append">
<input type="text" ng-model="ads.value" class="input-small" />
</div></td>
<td class="tdContactsCentered"><div class="input-append">
<input type="text"
ng-model ="ads.multipliedByIt"
class="input-small"
name="expected"
/>
</div></td>
我从我的控制器中设置了sdate值并且它很好
下面是我的角度代码。
$scope.ads = {
value:0,
multipliedByIt:0
};
var multipliedByIt = function() {
$scope.ads.multipliedByIt = $scope.ads.value * $scope.sdate;
}
$scope.$watch('ads.value',multipliedByIt );
问题是,ads.value和ads.multipliedByIt绑定并为表格中的所有单元格/行设置相同的值,但我想为ads.value设置不同的单独值。
我不确定这个问题的格式是否合适,我希望它足够清楚。
谢谢
答案 0 :(得分:0)
https://github.com/angular/angular.js/wiki/Understanding-Scopes
使用ng-repeat
时使用$scope.$parent
修改子范围之外的值。
答案 1 :(得分:0)
试试这个:
$scope.ads = {
value:0,
multipliedByItself:0
};
var multipliedByIt = function(newValue, oldValue) {
$scope.ads.multipliedByIt = newValue * $scope.sdate;
}
$scope.$watch('ads.value', multipliedByIt );
答案 2 :(得分:0)
听起来你想要做的就是这样:
http://codepen.io/robertmesserle/pen/16d97c19d97eb2acf339569565e5dd11?editors=001
我建议您不要依赖Angular为每个用户创建数据的本地副本,而是建议您自己动手:
$scope.$watch('page', function (newValue, oldValue) {
angular.forEach(newValue, function (user) {
if (!user.ads) user.ads = angular.extend({}, $scope.ads);
if (!user.sdate) user.sdate = $scope.sdate;
user.ads.multipliedByIt = user.ads.value * user.sdate;
});
}, true);
这做了一些事情:
ads
个对象,则会根据$scope.ads
sdate
个对象,则会从$scope
最后一部分是有效的,因为我将true
传递给了$watch
方法,告诉它对更改进行深入检查,这会像以前的观察者那样捕获user.ads.value
的更改。
我希望这会有所帮助。
修改:根据您的后续问题添加此内容。这应该可以解决您的问题:
$scope.zoneConfig = function (accountForm) {
$scope.lastAction = 'create';
$scope.uri = "/phoenix/protected/users/conf/";
var uri = $scope.uri;
angular.forEach($scope.page, function (user, key) {
var xsrfi = $.param({
'monthlyContributable' : user.ads.value,
'expectedAmount': user.ads.multipliedByIt
});
});
};
失败的原因是没有$scope.user
- $scope.page
包含一系列用户。由于您正在迭代$scope.page
,我将value
更改为user
以使其更加清晰,然后直接引用它。