Smart Table with Angular 1.5.8 - 行 select 不工作 - 范围未填写
Smart Table with Angular 1.5.8 - row select not working - scope not filled in
我决定将 https://lorenzofox3.github.io/smart-table-website/ 合并到我的申请中。网站上的示例工作正常,但是,当我开始集成时,我无法使行 selection 函数。
演示站点和我的主要区别在于我使用的是 Angular 1.5.8。我已经调试并确定了片段,这让我产生了怀疑:
ng.module('smart-table')
.directive('stSelectRow', ['stConfig', function (stConfig) {
return {
restrict: 'A',
require: '^stTable',
scope: {
row: '=stSelectRow'
},
link: function (scope, element, attr, ctrl) {
var mode = attr.stSelectMode || stConfig.select.mode;
element.bind('click', function () {
scope.$apply(function () {
ctrl.select(scope.row, mode);
});
});
scope.$watch('row.isSelected', function (newValue) {
if (newValue === true) {
element.addClass(stConfig.select.selectedClass);
} else {
element.removeClass(stConfig.select.selectedClass);
}
});
}
};
}]);
函数 link
接收 scope
对象,其中 row
未定义,因此 select
函数跳过并且该行没有任何内容。
我在笔上复制了这个问题:http://codepen.io/anon/pen/bwJqBw 过滤和排序工作正常,只有行 select 不行。
我该如何解决这个问题,原因是什么?作用域绑定的语法是否改变了?根据文档,它似乎没问题,但作为一个 angular 新手,我很难断言。
您需要在 st-select-row 中使用您在 ng-repeat 中使用的相同参考,从您的代码笔中,您正在做:
<tr st-select-row="row" st-select-mode="multiple" ng-repeat="customer in displayedCustomers">
你应该这样做:
<tr st-select-row="customer" st-select-mode="multiple" ng-repeat="customer in displayedCustomers">
我决定将 https://lorenzofox3.github.io/smart-table-website/ 合并到我的申请中。网站上的示例工作正常,但是,当我开始集成时,我无法使行 selection 函数。
演示站点和我的主要区别在于我使用的是 Angular 1.5.8。我已经调试并确定了片段,这让我产生了怀疑:
ng.module('smart-table')
.directive('stSelectRow', ['stConfig', function (stConfig) {
return {
restrict: 'A',
require: '^stTable',
scope: {
row: '=stSelectRow'
},
link: function (scope, element, attr, ctrl) {
var mode = attr.stSelectMode || stConfig.select.mode;
element.bind('click', function () {
scope.$apply(function () {
ctrl.select(scope.row, mode);
});
});
scope.$watch('row.isSelected', function (newValue) {
if (newValue === true) {
element.addClass(stConfig.select.selectedClass);
} else {
element.removeClass(stConfig.select.selectedClass);
}
});
}
};
}]);
函数 link
接收 scope
对象,其中 row
未定义,因此 select
函数跳过并且该行没有任何内容。
我在笔上复制了这个问题:http://codepen.io/anon/pen/bwJqBw 过滤和排序工作正常,只有行 select 不行。
我该如何解决这个问题,原因是什么?作用域绑定的语法是否改变了?根据文档,它似乎没问题,但作为一个 angular 新手,我很难断言。
您需要在 st-select-row 中使用您在 ng-repeat 中使用的相同参考,从您的代码笔中,您正在做:
<tr st-select-row="row" st-select-mode="multiple" ng-repeat="customer in displayedCustomers">
你应该这样做:
<tr st-select-row="customer" st-select-mode="multiple" ng-repeat="customer in displayedCustomers">