Tôi đã ben sử dụngLàm thế nào để ghim mở một sideNav trong góc-Vật liệu Thiết kế
<md-sidenav md-component-id="leftNav" md-is-open="vm.isOpen"
md-is-locked-open="vm.isPinned" ... >
<i class="fa fa-bars float-right" ng-click="vm.toggleNav()"></i>
...
</md-sidenav>
với phương pháp toggleNave trong bộ điều khiển thiết lập các giá trị
class MyController {
constructor($mdSideNav) {
this.mdSideNav = mdSideNav;
this.isPinned = false;
this.isOpen = false;
}
toggleNav = (navId) => {
this.$mdSideNav(navId).toggle().then(() => {
this.isPinned = this.isOpen;
}
}
}
Nhưng điều này gây ra màn hình để flash trên mở và đóng, và nó không có vẻ là cách tốt nhất để pin mở một sideNav.
Mong muốn là có nút bật/tắt được mở, nhưng vẫn giữ được nếp mở cho đến khi tôi đóng nó lại.
Nếu tôi sử dụng md-is-locked = "$ media ('')" thì nút sideNav khóa mở và không bao giờ đóng cho đến khi cửa sổ co lại bên dưới kích thước phương tiện. Đây không phải là điều tôi muốn.
Nếu tôi không sử dụng md bị khóa, thì bên hông sẽ sụp đổ khi bạn nhấp vào nó, nhưng tôi muốn nó vẫn mở! cho đến khi tôi muốn đóng nó lại.
Bất kỳ ai biết cách thực hiện việc này?
Cảm ơn
BTW: Tôi đang sử dụng ES6, do đó chức năng lớp và mũi tên. :-)
Thông báo như thế nào chuyển đổi sẽ mở nav bên, nhưng chỉ tạm thời. Nhấp/chạm vào bất kỳ nơi nào khác trong ngăn giữa và điều hướng bên tự động đóng. Nếu bạn muốn chuyển đổi nó để ở lại mở, sau đó bạn cần một cái gì đó nhiều hơn một chút chỉ là chuyển đổi. –
Phải. [Kiểm tra điều này] (http://codepen.io/markwcollins/pen/KwrgOE) Tôi chỉ định nghĩa một boolean $ scope.keepOpen và ánh xạ nó tới 'md-is-locked-open'. Tôi nghĩ rằng chỉ cần thay đổi điều này, bạn sẽ nhận được kết quả mong muốn. Hy vọng nó sẽ giúp –
Thật không may bằng cách sử dụng một boolean không phải là một giải pháp rất tốt. Ví dụ: bạn không thể đóng cửa sidenav bằng cách nhấp vào bên ngoài nó nữa. Tôi có cùng vấn đề với @KendrickBurson. Điều kỳ lạ là trang demo cho thiết kế material design hoạt động mà không có boolean. Tôi đã cố bắt chước mã đó mà không thành công. –