Если использовать
$scope.showOrder отдельно, то работает нормально. Но, если поместить в
ng-repeat, то нет никакой реакции.
orders.controller.jsapp.controller('MakeOrders', ['$scope', '$compile', function($scope, $compile) {
$scope.orders = OrdersArr;
$scope.setOS = function(s){
return (s=='123') ? 'iOS' : 'Android';
}
$scope.setPayStatus = function(s){
return s ? 'оплачено' : 'не оплачено';
}
$scope.setId = function(i){
a = '00000';
return a.substr(0,5-i.toString().length)+i;
}
$scope.showOrder = function(id){
$('.col-lg-3').css('width','30%');
var title_id = '00000'.substr(0,5-id.toString().length)+id;
$('.arrow-back').show();
$('.panel-header h1').text('Заказ №'+title_id);
$('.panel-search-box,.panel-content').hide();
var compiledeHTML = $compile("<div order-Info></div>")($scope);
$(".panel-content").after(compiledeHTML);
}
}]);
app.directive('orderInfo', function() {
return {
templateUrl: '/res/admin/order-info.html'
};
});
index.html<div ng-controller="MakeOrders" class="panel-order-table">
<table>
<tbody>
<tr ng-click="showOrder(1);"><th>№ ЗАКАЗА</th><th>ДАТА И ВРЕМЯ</th><th>ПЛАТФОРМА</th><th>СУММА</th><th>СТАТУС</th></tr>
<tr ng-click="showOrder({{order.id}});" class="panel-order-row" ng-repeat="order in orders">
<td>{{ setId(order.id) }}</td>
<td>{{order.delivery_time | timestampToDate}}</td>
<td>{{ setOS(order.client_id) }}</td>
<td id="order-td-summa">
<span>{{order.amount}} руб.</span>
<span class="paid">{{ setPayStatus(order.pay_status) }}</span>
</td>
<td id="order-td-status">
<span class="sprite-icon order-icon-1"></span>
<span onclick="Orders.StatusBox(true,this);">Принят в обработку</span>
<div id="dropdown-status" class="dropdown-status">
<ul>
<li><span>Принят в обработку</span></li>
<li><span>Ожидает доставки</span></li>
<li><span>Доставлено</span></li>
<li><span>Анулировано</span></li>
</ul>
</div>
</td>
</tr>
</tbody>
</table>
</div>
Как видно, есть в одном
- showOrder(1); и он работает. Как исправить, чтобы работало и то, что в ng-repeat?