2014-10-19 12 views
6

Tôi có một ứng dụng sử dụng Angular ui-router. Khi bộ định tuyến được đặt ở một trạng thái nhất định, tôi muốn đặt bộ hẹn giờ thành ví dụ 2 giờ. Trong khi nó được đặt thành một trạng thái khác, tôi muốn đếm số đếm ngược. Tôi muốn có thời gian hiển thị còn lại trên màn hình của tôi.AngularJS có giúp ích gì khi truy cập vào trang web của tôi không?

Có ai có bất kỳ ví dụ mã nào về cách tôi có thể thực hiện chức năng này không? Nếu bất cứ ai đã làm điều gì đó tương tự, tôi sẽ đánh giá cao bất kỳ lời khuyên nào mà họ có thể đưa ra.

+0

Tại sao không triển khai nó trong bộ điều khiển và chuyển hướng ngược lại trên đầu đếm ngược –

+0

@MaximShoustin - Vâng, tôi hy vọng có một điều tương tự nhưng tôi chưa thấy bất kỳ ví dụ nào. Hy vọng rằng ai đó đã làm điều gì đó như thế và họ có thể chia sẻ những gì họ đã làm. –

+1

Không làm điều khiển bên trong bộ điều khiển. Sử dụng 'onEnter' trong định nghĩa trạng thái – Max

Trả lời

1

Tôi hiện đang sử dụng một dịch vụ đếm ngược cho mục đích này trong dự án của tôi. theo yêu cầu của bạn, bạn có thể sử dụng dịch vụ như dưới đây:

  1. bắt đầu init nó trên đầu trang

    app.controller('view1Ctrl', function($scope, $csCountdown){ 
        $csCountdown.init(2 * 3600); // 2 hours 
        $scope.countdown = $csCountdown.data; 
    }) 
    
  2. bắt đầu truy cập vào thứ hai trang

    app.controller('view2Ctrl', function($scope, $csCountdown){ 
        $csCountdown.start(); 
        $scope.countdown = $csCountdown.data; 
    }) 
    

bạn có thể hiển thị giá trị trên bất kỳ trang nào bằng cách sử dụng countdown.stringValue

<h1>Time : {{countdown.stringValue}}</h1> 

bạn có thể thấy nó hoạt động PLUNKER LINK. Tôi đã tạo view1 & view2 với hoạt ảnh chuyển tiếp.

EDIT

Tôi có cập nhật PLUNKER 2 để có một ví dụ thực tế.

  1. Ban đầu bạn sẽ thấy trang hướng dẫn, nơi bộ hẹn giờ được khởi tạo đến 2 giờ.

  2. Sau đó chuyển sang câu hỏi 1, nơi hẹn giờ bắt đầu

  3. từ câu hỏi 1 bạn có thể vào trang trợ giúp, nơi mà các bộ đếm thời gian tạm dừng

  4. sau đó bạn quay trở lại câu hỏi 2, nơi hẹn giờ hồ sơ. ..

+0

Bạn có thể giải thích sự khác biệt giữa hai trang không? Có vẻ như trang đầu tiên được đặt thành hai giờ và không thay đổi. Có thể giữ giá trị đếm ngược sau khi tôi chuyển sang trang khác và tiếp tục khi tôi quay lại trang đó không? –

+0

@SamanthaJ xin vui lòng kiểm tra plunker cập nhật, nơi dịch vụ đếm ngược được sử dụng trong kịch bản thực tế ... mô phỏng kỳ thi. – harishr

+0

Tại sao điều này được chấp nhận là câu trả lời? Tôi không nói nó sai nhưng nó không giữ số đếm hiện tại sau khi làm mới. Ngoài ra tôi đã trả lời cách trước ... –

5

Bạn có thể kết hợp dịch vụ và chỉ thị cho mục đích này. Dịch vụ sử dụng cookie để lưu trữ giá trị đếm ngược. Vì vậy, nó sẽ tiếp tục đếm ngay cả sau khi làm mới.

Bạn có thể bắt đầu hoặc ngừng đếm ngược từ điều khiển:

CountdownService.startCounting(3 * 30 * 1000); // milliseconds 

Sau đó hiển thị thời gian còn lại từ một chỉ thị trong mẫu:

<countdown></countdown> 

Ngoài ra bạn có thể thay đổi phong cách của chỉ thị từ mẫu .

Kiểm tra của tôi plunker ...

+0

Cảm ơn câu trả lời này. Tôi đang kiểm tra xem nó có đáp ứng được nhu cầu của tôi hay không. –

+0

Tôi không biết nếu nó phù hợp với nhu cầu chính xác của bạn hay không nhưng tôi đoán bạn có thể mở rộng nó sau thời điểm này ... –

+0

Xin chào, tôi đã mở một khoản tiền thưởng cho việc này. Hy vọng để xem nếu những người khác có bất kỳ giải pháp. Nếu không thì tôi sẽ trao tiền thưởng. Cảm ơn đề xuất của bạn. – Melina

Các vấn đề liên quan