2013-07-01 31 views
11

Tôi muốn có cửa sổ bật lên datepicker khi nhấp vào nút bằng cách sử dụng các thành phần của thư viện Angular UI Bootstrap. Có các ví dụ về cả hai trên trang web Angular UI Boostrap nhưng tôi không thấy cách kết hợp chúng. Tôi không thích ý tưởng đặt Datepicker div làm giá trị thuộc tính cho văn bản của chỉ thị popup.Góc giao diện người dùng Bootstrap - Popup Datepicker

Tôi cũng đã cố gắng sử dụng ng-show trên Datepicker div nhưng tôi cũng không thể làm việc đó.

Đây là mã tôi có vào lúc này.

<div ng-controller="DatepickerCtrl" class="input-append"> 
     <input class="input-small ng-pristine ng-valid" 
       type="text" 
       ng-value="dt" /> 
     <button type="button" 
       class="btn" 
       popover-placement="right" 
       ng-click"showDatePicker=true"  // the show when clicked strategy 
       popover="On the Right!">   // Don't see a way to make this encapsulate a div 
        <i class="icon-calendar"></i> 
     </button> 
     <datepicker ng-model="dt" 
        ng-show="showDatePicker" 
        starting-day="1" 
        date-disabled="disabled(date, mode)" 
        min="minDate" max="'2015-06-22'"> 
     </datepicker> 
</div> 

Tôi thực sự không thích chiến lược ng-show. Thay vào đó sẽ có nó là một cửa sổ pop nhưng tôi giả sử có những cách để làm điều đó tốt hơn quá vì vậy tôi sẽ không nhớ một trong hai.

+0

Hãy thử với [Dây đeo góc] (http://mgcrea.github.io/angular-strap/#/datepicker). – Stewie

+0

Tôi đã xem xét nó và cuối cùng sẽ sử dụng nó nếu không có giải pháp cho việc này. –

Trả lời

13

Cập nhật 2015-08-16 - Kể từ giao diện người dùng Angular Bootstrap 0.13.0, tính năng này hiện được bao gồm! Nó hoạt động rất giống với những gì tôi đã mô tả dưới đây. Để sử dụng tính năng này, hãy thêm popover-template="'mytemplate.html'" vào phần tử bạn muốn áp dụng cửa sổ bật lên.

Tôi đã tạo new example cho biết tính năng này đang hoạt động.


Tính đến 2013/07/02, có một open issue với dự án kiễu góc UI Bootstrap để cho phép bạn đặt đoạn mã HTML bên trong một popover.

Nếu/khi thay đổi này được hợp nhất, bạn có thể đặt một trình ghi ngày tháng bên trong mẫu và sau đó tham chiếu mẫu này bằng cách thêm popover-template="mytemplate.html" vào phần tử mà bạn đã khai báo bật lên.

Ví dụ về chức năng này, bạn có thể thấy Plunker that I recently forked.

Tôi sẽ cập nhật câu trả lời này khi thay đổi tình hình.

EDIT

Nếu bạn thích phiêu lưu, mã tôi đã sử dụng được dựa trên Pull Request 369, mà sẽ dẫn đến this commit.

Có ba lý do mà tôi biết là tại sao các cam kết chưa được sáp nhập nào:

  1. Có một phạm vi mà cần phải được làm sạch lên trên khi một phạm vi cha mẹ bị phá hủy. Điều này được đề cập trong một bình luận được thực hiện bởi Pawel Kozlowski trong cam kết tôi liên kết.
  2. Mở, đóng và mở lại cửa sổ bật lên làm cho việc ràng buộc phạm vi thời gian mở cửa khi cửa sổ bật lên mở lại. Tôi đã đăng cách giải quyết vấn đề này trong Issue 220 (cùng một vấn đề được liên kết ở trên).
  3. Hiện chưa có bất kỳ thử nghiệm nào về điều này.

Tôi có thể cố gắng tìm một số thời gian cuối tuần này để giải quyết những vấn đề này để có thể hợp nhất vào dự án.

+0

John - thực sự hữu ích. Nhưng bạn có thể giải thích những gì bạn đã vá trong ui-bootstrap.js không? Bạn có diffs? Tôi muốn áp dụng bản vá đó cho phiên bản 0.4.0 của ui-bootstrap-tpls.js. Tôi có các bản vá lỗi khác đã được áp dụng và tôi không thể chỉ sử dụng các bản mod của bạn. Dường như với tôi, bạn có thể vá khỉ bằng một tệp kịch bản độc lập, chỉ đơn giản là thêm vào ui-bootstrap-tpls-0.4.0.js. Sẽ rất tuyệt nếu bạn có thể roi lên. :) – Cheeso

+0

Xin chào! Tôi đã cập nhật câu trả lời của mình. Tôi không có một sự khác biệt cho nó, nhưng tôi có thể nhìn vào nhìn thấy những gì tôi có thể làm để có được mã sáp nhập vào cuối tuần qua. –

+0

cảm ơn bạn đã cập nhật. Điều đó đã làm các trick! Sẽ mong nhận được một bản cập nhật với sự thay đổi này nhưng bây giờ, điều này làm việc cho tôi. – Cheeso

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