我正在使用 Angularjs ui 作为引导库。特别是我,想要自定义“折叠”指令的行为。目前,如果我在一个页面上有多个可折叠部分,它会同时折叠它们。我想将它们分开,这样我就可以知道哪个元素触发了事件。并仅折叠该部分。我尝试了几种不同的方法,包括在 ng-click 中添加 $event 表达式,但它的返回未定义。
我希望有人可以帮我修复此代码吗?
.directive("collapse", ["$transition", function (e, $event) { var t = function (e, t, n) { t.removeClass("collapse"), t.css({height: n}), t[0]. offsetWidth, t.addClass("collapse") };
return{link: function (n, a, i) { var r, o = !0; n.$watch(function () { return a[0].scrollHeight }, function () { 0 !== a[0].scrollHeight && (r || (o ? t(n, a, a[0].scrollHeight + "px") : t(n, a, "auto"))) }), n.$watch(i.collapse, function (e) { console.log(r); e ? u() : c() //removed for testing }); var l, s = function (t) { return l && l.cancel(), l = e(a, t), l.then(function () { l = void 0 }, function () { l = void 0 }), l }, c = function () {
o ? (o = !1, r || t(n, a, "auto")) : s({height: a[0].scrollHeight + "px"}).then(function () { r || t(n, a, "auto") }), r = !1 }, u = function () { r = !0, o ? (o = !1, t(n, a, 0)) : (t(n, a, a[0].scrollHeight + "px"), s({height: "0"})) } }} }])