Javascript $scope.$watch仅在UI引导下工作一次';s分页指令
我尝试对我的角度项目进行分页,然后我决定遵循这个示例Javascript $scope.$watch仅在UI引导下工作一次';s分页指令,javascript,angularjs,pagination,Javascript,Angularjs,Pagination,我尝试对我的角度项目进行分页,然后我决定遵循这个示例 http://plnkr.co/edit/81fPZxpnOQnIHQgp957q?p=preview 除了$scope.watch在第一次加载数据时只工作一次之外,其他一切都正常。 但在那之后,当我点击分页链接时,$scope.watch似乎什么都没做 这是我的js代码 $.ajax({ url: 'json/multipleOrder.json', //Server script to process data typ
http://plnkr.co/edit/81fPZxpnOQnIHQgp957q?p=preview
除了$scope.watch在第一次加载数据时只工作一次之外,其他一切都正常。
但在那之后,当我点击分页链接时,$scope.watch似乎什么都没做
这是我的js代码
$.ajax({
url: 'json/multipleOrder.json', //Server script to process data
type: 'get',
beforeSend: function(xhr){
},
success: function(data){
$scope.orderDetails = data;
$scope.lastPage = data.last_page;
$scope.orders = data.data
$scope.getTotal = function(order){
var total = 0;
for(var i = 0; i < order.products.length; i++){
var subtotal = order.products[i].subtotal;
total += subtotal;
}
return total;
}
$scope.returnRowNumber = function(rowNumber){
if(rowNumber === 0){
return true;
} else {
return false;
}
}
$scope.filteredTodos = [];
$scope.currentPage = data.current_page;
$scope.numPerPage = data.per_page;
$scope.maxSize = 5;
$scope.totalOrders = data.total;
$scope.$watch('currentPage + numPerPage', function() {
var begin = (($scope.currentPage - 1) * $scope.numPerPage)
, end = begin + $scope.numPerPage;
$scope.filteredOrders = $scope.orders.slice(begin, end);
console.log('end scope watch');
//Only printed once when the data was loaded
});
$scope.$apply();
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest);
alert(textStatus);
}
});
$.ajax({
url:'json/multipleOrder.json',//用于处理数据的服务器脚本
键入:“get”,
发送前:函数(xhr){
},
成功:功能(数据){
$scope.orderDetails=数据;
$scope.lastPage=data.last_页;
$scope.orders=data.data
$scope.getTotal=函数(顺序){
var合计=0;
对于(变量i=0;i
这是我的指令和表格
<div class="pagination-box">
<nav class="clearfix">
<pagination
ng-model="currentPage"
total-items="totalOrders"
max-size="maxSize"
boundary-links="false">
</pagination>
</nav>
</div>
<tr ng-repeat="order in filteredOrders">
<th class="text-center">
<span class="table-order-number">
<strong>{{ order.id }}</strong>
</span>
<br>
<span>{{ order.customer.name }}</span>
<br>
<br>
<span>{{ order.estimated_pickup }}</span>
</th>
<td>
<span ng-repeat="product in order.products">
1 X {{ product.name }} <br>
<span ng-repeat="extra in product.extras">
<span ng-repeat="item in extra.items">
-- ext {{ item }}
<br>
</span>
</span>
<br>
</span>
</td>
<td>{{ getTotal(order) }}</td>
<td>
{{ order.customer.address.address1 }}
<br>
{{ order.customer.address.address2 }}
<br>
{{ order.customer.address.suburb }}
<br>
{{ order.customer.address.city }}
<br>
<br>
<strong>
<i class="icon ion-iphone" style="font-size: 24px;"></i> {{ order.customer.phone }}
</strong>
</td>
<td>aaaa</td>
<td class="text-center">
<button class="button button-balanced order-bt" ng-click="togglePickupModal()">
button-balanced
</button>
</td>
</tr>
{{order.id}
{{order.customer.name}
{{order.estimated_pickup}}
1 X{{product.name}}
--ext{{item}
{{getTotal(order)}
{{order.customer.address.address1}
{{order.customer.address.address2}
{{order.customer.address.PARTUBER}}
{{order.customer.address.city}
{{order.customer.phone}
aaaa
按钮平衡
但是console.log('end scope watch')只打印一次。
当我点击“痛苦”链接时,什么也没发生。
我怎样才能解决这个问题
谢谢 我的猜测是,
currentPage+numPerPage
没有得到Angular的正确解释。检查传递给手表的参数是什么和/或只是作为测试观察currentPage
。您可以创建一个执行currentPage+numPerPage
的计算属性,并对其进行观察。我猜currentPage+numPerPage
并没有得到正确的角度解释。检查传递给手表的参数是什么和/或只是作为测试观察currentPage
。您可以创建一个执行currentPage+numPerPage
的计算属性,并查看它。