2015-01-20 18 views

Trả lời

4

Tôi cần chức năng này để hiển thị bảng điều khiển khi có ít nhất 1 hàng được chọn. Ban đầu tôi thiết lập một chiếc đồng hồ, nhưng quyết định đó là quá đắt.

Tôi đã kết thúc thêm một cuộc gọi lại bên trong chỉ thị stSelectRow.

ng.module('smart-table') 
    .directive('stSelectRow', function() { 
    return { 
     restrict: 'A', 
     require: '^stTable', 
     scope: { 
      row: '=stSelectRow', 
      callback: '&stSelected' // ADDED THIS 
     }, 
     link: function (scope, element, attr, ctrl) { 
     var mode = attr.stSelectMode || 'single'; 
     element.bind('click', function ($event) { 
      scope.$apply(function() { 
       ctrl.select(scope.row, mode, $event.shiftKey); 
       scope.callback(); // AND THIS 
      }); 
     }); 

     //***/// 
     } 
    }; 
    }); 

tôi sau đó có thể vượt qua một chức năng từ bộ điều khiển của tôi để chỉ thị (lưu ý: bạn có thể vượt qua các hàng đã chọn lại, tôi không cần phải)

tr ng-repeat="row in customerResultsTable" st-select-row="row" st-select-mode="multiple" st-selected="rowSelected()"> 

Được tham chiếu bài này giúp Callback function inside directive attr defined in different attr

+0

Cảm ơn, điều này giải quyết được vấn đề của tôi! –

+0

Điều này có thể là một bổ sung tốt đẹp cho bảng mã thông minh? – John

+0

@ John yea phải là PR tốt. cảm ơn cho điều này-About-Bob – Bowofola

0

Dưới đây là một chiếc đồng hồ dễ dàng để đặt trên một Smart Table:

// fired when table rows are selected 
$scope.$watch('displayedCollection', function(row) { 

    if(!row) return; 

    // get selected row 
    row.filter(function(r) { 
    if (r.isSelected) { 
     console.log(r); 
    } 
    }) 
}, true); 

html có liên quan:

<table st-table="displayedCollection" st-safe-src="rowCollection" class="select-table table"> 

This github issue là hữu ích.

+0

này là làm việc cho tôi nhưng cung cấp cho lỗi trên tải trang của "Lỗi: hàng là undefined bảng thông minh". Bạn có bất cứ gợi ý nào về cách khắc phục lỗi đó không? Cảm ơn – totallytotallyamazing

+0

@totallytotallyamazing không có lỗi, tôi đã không được làm nhiều Angular những ngày này vì vậy không thể giúp ya không may. – Banjer

+0

Cảm ơn bạn đã liên hệ lại với tôi! – totallytotallyamazing

Các vấn đề liên quan