在角度js中是新的,只是尝试一些基本的例子&遇到了这个问题。
我正在使用ng-repeat
创建一个表,其中json array
是数据源。该表有一个quantity列和一个add按钮。
我想增加数量的价值,一旦我点击add button.By理解是因为这是一个双向的数据绑定,如果我增加到ng-model
的值绑定,它将在视图中反映,这是不发生的。
JS
angular.module('DemoApp',[]).controller('TableController',['$scope',function($scope){
$scope.dataset = [json data ];
$scope.add = function($event){
// get $scope.bookQuantity,add 1
var _m =$scope.bookQuantity;
console.log(_m) // consoling undefined;
}
}])
我遵循了这个链接,但仍然无法解决这个问题。
我已经创建了这个柱塞,它可能有助于理解这个问题。
发布于 2016-04-13 21:05:25
像这样试试。你应该改变你的解决方案。我将bookId
作为参数传递给函数,当操作完成时,再加上数组中的bookQuantity字段。
// Code goes here
angular.module('DemoApp',[]).controller('TableController',['$scope',function($scope){
$scope.dataset = [{
bookId: "1001",
bookName: "Wings",
bookPrice: 224,
bookQuantity: 4
},{
bookId: "1002",
bookName: "Turning",
bookPrice: 142,
bookQuantity: 3
},{
bookId: "1003",
bookName: "Playing",
bookPrice: 402,
bookQuantity: 2
},{
bookId: "1004",
bookName: "Steve Jobs",
bookPrice: 418,
bookQuantity: 2},{
bookId: "1005",
bookName: "History",
bookPrice: 207,
bookQuantity: 2
}]
$scope.add = function(bookId){
angular.forEach( $scope.dataset,function(item){
if(item.bookId == bookId)
item.bookQuantity = item.bookQuantity + 1;
});
console.log($scope.dataset);
}
}])
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="DemoApp" ng-controller ="TableController" >
<table>
<thead></thead>
<tbody>
<tr ng-repeat="data in dataset">
<td>{{data.bookId}}</td>
<td>{{data.bookName}}</td>
<td>{{data.bookPrice}}</td>
<td>{{data.bookQuantity}}</td>
<td><input type = "button" value ="Add" data-id ="{{data.bookId}}" ng-click = "add(data.bookId)"></td>
</tr>
</tbody>
</table>
</div>
发布于 2016-04-13 21:14:23
-试试这个:- *.html
<thead></thead>
<tbody>
<tr ng-repeat="data in dataset">
<td>...</td>
...
.
<td><input type = "button" value ="Add" data-id ="{{data.bookId}}" ng-click = "add(data)"></td>
</tr>
</tbody>
*.js
$scope.add = function(record){
record.bookQuantity = record.bookQuantity + 1;
console.log(record.bookQuantity); // consoling not undefined;
}
https://stackoverflow.com/questions/36614163
复制