2013-02-22 35 views
32

Tài liệu chỉ định sử dụng mẫu {{> loginButtons}} để triển khai các nút đăng nhập mặc định.Cách tạo kiểu đăng nhập của Meteor.js?

Cách tốt nhất để áp dụng kiểu của riêng mình cho điều này là gì?

  • Viết lại một mẫu mới (cách này sẽ được thực hiện?)
  • Thêm phong cách cho các file CSS của tôi được đánh dấu !important
  • khác?
+0

Có này [gói sao băng Useraccounts] (http://useraccounts.meteor.com/) với phong cách khác nhau khác nhau và một unstyled. Nó có thể dễ sử dụng hơn nhiều so với việc cố gắng tạo kiểu tài khoản-ui – gman

Trả lời

41

Hóa ra một sự kết hợp của hai ý tưởng có thể được sử dụng. Sau khi truy cập vào the accounts-ui package, nó chỉ ra rằng nó chỉ chứa một tệp .less. Mẫu thực tế được bao gồm trong accounts-ui-unstyled, được tự động đưa vào khi accounts-ui được thêm vào dự án meteor.

Do đó, CSS có thể được gỡ bỏ như sau:

meteor remove accounts-ui 
meteor add accounts-ui-unstyled 

Bạn đang sau đó trái với the raw HTML, có thể được tạo kiểu như bạn chọn.

+1

Dường như có một lời nhận xét cảnh báo không sử dụng trực tiếp các mẫu này .. Và một câu hỏi: Làm thế nào để bạn sửa đổi hành vi? (ví dụ thả xuống) bạn có tạo lại tất cả gói tài khoản-ui cục bộ không? –

+0

Nhận xét cảnh báo ở đâu? Tôi chỉ cần sao chép trong 'less' vào một tập tin trong thư mục khách hàng của tôi và sửa đổi nó như tôi cần – Swadq

+2

nhưng bạn sẽ làm gì khi bạn muốn vô hiệu hoá thả xuống hoặc thay đổi HTML? –

11

Tạo mẫu của riêng bạn chắc chắn sẽ cung cấp cho bạn nhiều quyền kiểm soát hơn.

Bạn tạo một mẫu bằng cách sử dụng các "mẫu" tag:

<template name="player"> 
    <div class="player {{selected}}"> 
    <span class="name">{{name}}</span> 
    <span class="score">{{score}}</span> 
    <span class="wins"> {{wins}} </span> 
    <span class="losses"> {{loss}} </span> 
    </div> 

</template> 

HOẶC Bạn có thể kiểm tra "lớp học" hay "id" của các nút đăng nhập sau khi được trả lại trên một trang web, sử dụng "Kiểm tra phần tử" trên Chrome và sử dụng các lớp đó làm bộ chọn CSS để tạo kiểu cho phù hợp.

Ví dụ:

HTML:

//The login button has a class of loginButton 
<button class="loginButton"> Login! </button> 

CSS:

#Then you can Have a style for the login button as: 
.loginButton{ 
    width: 100px; 
    background-color: cyan; 
} 
+0

Tôi có thể xem định nghĩa cho mẫu 'loginButtons' ở đâu, để tôi biết tôi có thể sử dụng biểu thức Handlebars nào? – Swadq

+1

Hmm, đó là một câu hỏi hay. Tôi đề nghị bạn kiểm tra các tài liệu thiên thạch, hoặc tốt hơn off .. nhìn vào nguồn thiên thạch trên github. –

+5

Ah! Tôi tìm thấy nó! https://github.com/meteor/meteor/tree/master/packages/accounts-ui –

6

Thanh toán thu hình màn ảnh này EventedMind - Customizing Login

+0

'LoạiError: Không thể gọi phương thức 'remove' của undefined',' TypeError: Không thể gọi phương thức 'insert' của undefined' – Squirrl

+2

Hãy nhớ rằng video gần 3 tuổi. Có thể API Meteor đã thay đổi. Nếu không, tôi không thể giúp bạn vì tôi không còn sử dụng Meteor nữa. – fraherm

0

Tạo mẫu html của riêng bạn tương tự như dưới đây. Phong cách nó theo khẩu vị của bạn.

meteor add accounts-password accounts-ui

   <template name="login"> 
        <form class="login-form"> 
         <div class="panel panel-default"> 
          <div class="panel-heading"> 
           <h3>Login</h3> 
          </div> 
          <div class="panel-body"> 
           <div class="form-group"> 
            <label>Email</label> 
            <input type="email" class="form-control" id="email" placeholder="Email address"> 
           </div> 
           <div class="form-group"> 
            <label>Password</label> 
            <input type="password" class="form-control" id="password" placeholder="password"> 
           </div> 
          </div> 
          <div class="panel-footer"> 
           <button type="submit" class="btn btn-danger btn-lg">Login</button> 
          </div> 
         </div> 
        </form> 
       </template> 

Bây giờ bạn có thể gọi Meteor.loginWithPassword trong trường hợp mẫu như vậy:

Template.login.events({ 
    'submit .login-form': function(e) { 
     e.preventDefault(); 
     var email = e.target.email.value; 
     var password = e.target.password.value; 
     Meteor.loginWithPassword(email, password,function(error){ 
      if(error) { 
       //do something if error occurred or 
      }else{ 
       FlowRouter.go('/'); 
      } 
     }); 
    } 
}); 

Bạn có thể tạo một hình thức đăng ký là tốt.

Chỉ cần gọi Accounts.createUser(object, callback);

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