Ner*_*erg 7 javascript jquery-ui angular
我尝试使用带有angular2的Jquery-ui滑块.我想让变量"slideValue"显示滑块的值,但我无法弄清楚如何将我的模型或变量从角度绑定到滑块.这是我的滑块组件:
import {Component, ElementRef, Inject, OnInit} from 'angular2/core';
declare var jQuery:any;
@Component({
selector: 'slider',
template:
`
<input type="text" [(ngModel)]="slideValue" id="amount" required placeholder="Enter a name here">
<div id="slider"></div>
<h2>slideValue = {{slideValue}}</h2>
`
})
export class Slider implements OnInit {
elementRef: ElementRef;
slideValue: number;
constructor(@Inject(ElementRef) elementRef: ElementRef) {
this.elementRef = elementRef;
}
ngOnInit() {
jQuery(this.elementRef.nativeElement).find("#slider").slider({
range: false,
orientation: "vertical",
min: 0,
max: 100,
value: 60,
slide: function( event, ui ) {
this.slideValue = ui.value; //doesn't seem to work
$( "#amount" ).val( ui.value );
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
代码可在此处获得:
https://github.com/nerg/slider
我希望能够使用Angular2的任何"垂直滑块",所以如果存在另一个可行的解决方案,我很感兴趣(我检查材料,但似乎没有"angular2"准备就绪,只有水平滑块) .
您需要this在幻灯片回调中使用正确的context().在这种情况下,箭头功能可以解决问题:
@Component({
selector: 'slider',
template: `
<input type="text" [(ngModel)]="slideValue" class="amount" required placeholder="Enter a name here">
<div class="slider"></div>
<h2>slideValue = {{slideValue}}</h2>
`
})
export class Slider implements OnInit {
elementRef: ElementRef;
slideValue: number;
constructor(@Inject(ElementRef) elementRef: ElementRef) {
this.elementRef = elementRef;
}
ngOnInit() {
var $amount = jQuery(this.elementRef.nativeElement).find(".amount");
jQuery(this.elementRef.nativeElement).find(".slider").slider({
range: false,
orientation: "vertical",
min: 0,
max: 100,
value: 60,
slide: (event, ui) => {
this.slideValue = ui.value;
$amount.val(ui.value);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6309 次 |
| 最近记录: |