2015-03-21 25 views
6

Tôi cố gắng tạo ứng dụng trang đơn Dart.Biến toàn cầu trong Dart

Tôi đã tạo phần tử tùy chỉnh đầu tiên (custom-application) chứa toàn bộ ứng dụng. Nó có một thùng chứa trong đó được sử dụng để hiển thị các khung nhìn. Và một nav bên sẽ chứa thông tin người dùng và được cập nhật khi người dùng đăng nhập.

Tôi muốn chia sẻ thông tin giữa các chế độ xem. Tôi làm cách nào để xác định biến toàn cục trong custom-application và có thể chia sẻ nó với các chế độ xem khác?

Ví dụ: khi bạn khởi động ứng dụng, bạn không được xác thực. Khi bạn gọi/đăng nhập (login-view), bạn sẽ có một mẫu đăng nhập. Tôi muốn, khi bạn đăng nhập vào ứng dụng, phần tử custom-application lưu trữ thông tin người dùng được tải bởi chế độ xem lồng nhau login-view và cập nhật điều hướng bên.

Có thể thực hiện được không?

Trả lời

9

Chỉ cần tạo tệp thư viện và tạo trường cho hình cầu bạn cần ở đó. Nhập thư viện này ở mọi nơi bạn cần truy cập vào các trường này.

app.dart

import 'globals.dart' as globals; 

main() { 
    globals.isLoggedIn = true; 
} 

component1.dart

import 'globals.dart' as globals; 

class MyComponent { 
    view() { 
    if(globals.isLoggedIn) { 
     doSomething(); 
    else { 
     doSomethingElse(); 
    } 
    } 
} 

globals.dart

library my_prj.globals; 

bool isLoggedIn = false; 

Bạn cũng có thể
- tạo một singleton trong thư viện hình cầu (xem How do you build a Singleton in Dart? để biết thêm chi tiết).
- sử dụng có thể quan sát để được thông báo về các thay đổi (xem Implement an Observer pattern in Dart, How can i trigger a kind of onChange event in a class để biết thêm chi tiết)

+0

Nó hoạt động tốt. Cảm ơn bạn vì điều này và tất cả các liên kết. Tôi sẽ kiểm tra. – T00rk

+0

Xin lỗi, lỗi đánh máy. Không gian phải là một dấu chấm. –

+1

Cuối cùng tôi đã thành công để có được biến toàn cục như quan sát được bằng cách sử dụng mẫu quan sát được. Nó hoạt động rất tốt. Cảm ơn bạn một lần nữa. – T00rk