Tôi sử dụng NavigationView làm bảng điều khiển gốc. Và điều tôi cố gắng thực hiện là đẩy các khung nhìn vào bảng điều khiển gốc khi người dùng điều hướng sâu hơn vào ứng dụng của tôi và bật chúng khi người dùng quay lại.Cách sử dụng Sencha NavigationView, liên kết sâu và lịch sử trình duyệt đúng cách
Dưới đây là một ví dụ đơn giản cho thấy sự cố của tôi: Tôi có một loại chế độ xem hiển thị một số chi tiết mục nhập.
Ext.define('MyApp.view.EntryDetails', {
extend: 'Ext.Panel',
xtype: 'entrydetails',
config: {
tpl: '<div>{id}</div>'
}
});
Tôi cũng có một bộ điều khiển cấu hình để lắng nghe các tuyến đường sau: "entry /: id", và đẩy một entrydetails mới xem vào navigationstack (NavigationView) khi tuyến đường này trận đấu.
Ext.define('MyApp.controller.EntryDetails', {
extend: 'Ext.app.Controller',
config: {
routes: {
'entry/:id': 'showEntry'
},
refs: {
navview: 'mynavigationview'
},
},
showEntry: function(id){
this.getMain().push({
xtype: 'entrydetails',
data: {id:id}
});
}
});
Được rồi, điều này có hiệu quả. Bây giờ cho phép đầu tiên giả sử tôi điều hướng đến: index.html # entry/1. Điều này sẽ đẩy một cái nhìn mới vào ngăn xếp, giống như tôi muốn. Sau đó, tôi nhấp vào một liên kết khác index.html # entry/2. Một chế độ xem khác được đẩy lên ngăn xếp, đây cũng là hành vi dự định. Bây giờ vấn đề xuất hiện khi tôi nhấp vào nút BROWSERS back. Điều này thay đổi url thành index.html # entry/1 và đẩy một chế độ xem khác vào ngăn xếp của tôi. Tôi muốn bật chế độ xem thay vì thêm chế độ xem khác. Nếu tôi nhấn các thanh công cụ, nút quay lại sẽ xuất hiện như tôi muốn, nhưng đây không phải là trường hợp với nút quay lại của trình duyệt.
Tôi hiểu tại sao điều này xảy ra: Khung cảm ứng Sencha không biết liệu thay đổi url là do tôi nhấn một liên kết khác có url giống với url lịch sử trình duyệt trước đó hay tôi đã nhấn nút quay lại trình duyệt của tôi. Và tất cả các mã của tôi biết là nên đẩy một cái nhìn khác vào ngăn xếp khi nó thấy một thay đổi url để "entry /: id".
Cách tốt nhất để giải quyết vấn đề này là gì. Làm cách nào để phát hiện nút quay lại của trình duyệt đã được nhấn và bật chế độ xem từ chế độ xem điều hướng của tôi.
Tôi đã nghĩ đến việc kiểm tra xem url đã thay đổi có tương tự với chế độ xem tiếp tục xuống trên ngăn điều hướng của tôi hay không, nhưng tôi không chắc đó có phải là cách để thực hiện hay không.
Bất kỳ trợ giúp/thảo luận nào về chủ đề đều được đánh giá cao!
Cảm ơn bạn đã trả lời của bạn. Điều này dường như là con đường để đi. – jorgenfb