Skip to content

Commit ae75845

Browse files
committed
2 parents c690fa2 + 2f8ec44 commit ae75845

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

frameworks/non-keyed/quel/src/myappMain.js

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,24 +49,32 @@ const html = `
4949

5050
class ViewModel {
5151
data = [];
52-
selected = null;
52+
selectedIndex;
5353

5454
get "data.*.selected"() {
55-
return this["data.*"] === this.selected;
55+
return this.$1 === this.selectedIndex;
56+
}
57+
set "data.*.selected"(value) {
58+
if (value) {
59+
this.selectedIndex = this.$1;
60+
}
5661
}
5762
select(e, $1) {
58-
this.selected = this["data.*"];
63+
if (typeof this.selectedIndex !== "undefined") {
64+
this[`data.${this.selectedIndex}.selected`] = false;
65+
}
66+
this[`data.${$1}.selected`] = true;
5967
}
6068
remove(e, $1) {
6169
this.data = this.data.toSpliced($1, 1);
6270
}
6371
run() {
6472
this.data = buildData(1000);
65-
this.selected = null;
73+
this.selectedIndex = undefined;
6674
}
6775
runLots() {
6876
this.data = buildData(10000);
69-
this.selected = null;
77+
this.selectedIndex = undefined;
7078
}
7179
add() {
7280
this.data = this.data.concat(buildData(1000));
@@ -84,9 +92,6 @@ class ViewModel {
8492
[this["data.1"], this["data.998"]] = [this["data.998"], this["data.1"]];
8593
}
8694
}
87-
$dependentProps = {
88-
"data.*.selected": ["data.*", "selected"]
89-
};
9095
}
9196

9297
export default { ViewModel, html };

0 commit comments

Comments
 (0)