gpt4 book ai didi

javascript - Smart-Table - 预选特定行

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:02:42 26 4
gpt4 key购买 nike

我正在使用智能表格,我需要预先选择一个特定的行。

所以在加载我的列表后,我循环进入它并在到达我想要选择的项目时设置 isSelected 属性:

// Preselect a row
for (var i = 0, len = scope.displayCollection.length; i < len; i += 1) {
var person = scope.displayCollection[i];
if (person.firstName === 'Blandine') {
person.isSelected = true;
scope.selected = person;
break;
}
}

它工作正常,但是当我想选择另一条线时,预选线并没有被取消选择!我必须单击它才能手动取消选择它,然后才能正确选择另一行。

这是一个解释问题的 JSFiddle:http://jsfiddle.net/6pykn5hu/3/

我尝试了那里的建议Smart-Table - Select first row displayed (angularjs)但没有成功。

谢谢

最佳答案

所以我查看了他们的 directive如您所见,它调用父指令 stTable 中的一个函数。 row 绑定(bind)到点击处理程序...从 stTable 调用 ctrl.select() 函数,此函数依次存储最后一个选定的。这是您的问题,因为此事件不会触发,它永远不会设置最后单击的行,因此永远不会删除其类。我为您重写了该指令,以便它适用于您想要实现的目标,但可以很容易地对其进行改进。

app.directive('prSystem', function () {
return {
restrict: 'A',
require: '^stTable',
scope: {
row: '=prSystem'
},
link: function (scope, element, attr, ctrl) {
var mode = attr.stSelectMode || 'single';
if(scope.row.isSelected) {
scope.row.isSelected = undefined;
ctrl.select(scope.row, mode);
}

element.bind('click', function () {
scope.$apply(function () {
ctrl.select(scope.row, mode);
});
});

scope.$watch('row.isSelected', function (newValue) {
if (newValue === true) {
element.addClass('st-selected');
} else {
element.removeClass('st-selected');
}
});
}
}
})

关于javascript - Smart-Table - 预选特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32632384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com