如何使用[(ngModel)]双向数据绑定在Angular 4中创建切换开关开关按钮

时间:2018-04-27 05:26:37

标签: javascript css html5 angular twitter-bootstrap

enter image description here

需要实施类似于所附图像的开关 ON-OFF按钮......

2 个答案:

答案 0 :(得分:1)

使用ngx-toggle-switch

安装npm install ngx-toggle-switch --save

用法: -

import { UiSwitchModule } from 'ngx-toggle-switch';
import { AppComponent } from './app.component';

@NgModule({
  imports: [BrowserModule, UiSwitchModule],
  declarations: [AppComponent],
  bootstrap: [AppComponent]
})
export class AppModule {
}

用标记语言: -

<ui-switch></ui-switch>

用于双向绑定

<ui-switch [(ngModel)]="enable"></ui-switch>

有关Packge的文档,请参阅: - ngx-toggle-switch

答案 1 :(得分:0)

您可以使用普通复选框和一些CSS获取功能。 以下是有用的代码。

    .switch {
      position: relative;
      display: inline-block;
      width: 45px;
      height: 20px;
      margin: 20px;
    }

    .switch input {display:none; background-color: #ccc;}

    .slider {
      position: absolute;
      cursor: pointer;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
       background-color: #ccc;
      -webkit-transition: .4s;
      transition: .4s;
    }

    .slider:before {
      position: absolute;
      content: "";
      height: 26px;
      width: 26px;
      left: 0px;
       right: 0px;
      bottom: -3px;
      background-color: #2196F3;
      -webkit-transition: .4s;
      transition: .4s;
    }

    input:checked + .slider:before {
      -webkit-transform: translateX(20px);
      -ms-transform: translateX(20px);
      transform: translateX(20px);
    }

    /* Rounded sliders */
    .slider.round {
      border-radius: 20px;
    }

    .slider.round:before {
      border-radius: 50%;
    }

     <div class="row">
            <label>Yes</label>
            <label class="switch">
            <input type="checkbox" [(ngModel)]="isNewProfile">
            <span class="slider round"></span>
            </label>
            <label>No</label>
    </div>