我是Angular JS的新手,
我想用PHP动态制作HTML中的ng-click事件,这是代码。
var app = angular.module('pageapp',[]);
angular.module('pageapp')
.filter('to_trusted', ['$sce', function($sce){
return function(text) {
return $sce.trustAsHtml(text);
};
}]);
app.controller('productList',function($scope,$http){
$http.get("../webservice/api/get-products")
.success(function(response){
$scope.products = response.data;
$scope.paginationLinks = response.links;
});
$scope.getPageData = function () {
alert("Hello");
}
});
HTML ...
<section ng-controller="productList">
<table class="table table-responsive table-hover">
<thead>
<tr>
<th>S.No</th>
<th>Name</th>
<th>Color</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="product in products">
<td>{{$index + 1}}</td>
<td>{{product.name}}</td>
<td>{{product.color}}</td>
<td>{{product.price}}</td>
</tr>
</tbody>
</table>
<ul class="pagination pull-right" ng-bind-html="paginationLinks|to_trusted""></ul>
</section>
PHP ..
public function Products(){
$start = 0;
$perPage = 10;
$count = DB::table('products')->count();
$totalPages = ceil($count/$perPage);
$data = DB::table('products')
->select('name','price','color')
->take($perPage)
->skip($start)
->get();
for ($i=1; $i <= $totalPages; $i++) {
if($i == 1)
$links ="<li><a href=''>".$i."</a></li>";
else
$links .="<li><a href='' ng-click='getPageData(".$i.")'>".$i."</a></li>";
}
return [
'totalpages' =>$totalPages,
'data' =>$data,
'links' =>$links
];
}
答案 0 :(得分:1)
不要在PHP中添加ng-click='getPageData(".$i.")
,而是添加
ng-click="getPageData($event)"
到HTML中的 ul 元素。因此,您可以在JS中获得点击的 li 元素(通过事件冒泡),您可以随心所欲。
希望它有所帮助:)