ng2-slider-component ERROR TypeError:无法读取未定义

时间:2017-08-02 08:19:12

标签: angular slider

我正在尝试使用这个Angular 2插件,因为我需要一个NG2号码滑块,我可以自定义背景栏和旋钮: https://github.com/Bogdan1975/ng2-slider-component

我可以看到它在这里工作的一个例子: http://bogdan1975.github.io/slider/

但是当我尝试在我全新的Angular CLI项目中使用时,我遇到了问题。我用它作为参考来清除一些问题: https://github.com/Bogdan1975/ng2-slider-component/issues/12

即将这3个套餐添加到我的package.json dependencies

"ng2-slideable-directive": "^1.0.13",
"ng2-slider-component": "^1.0.9",
"ng2-styled-directive": "^1.0.5"

然后在我的app.module中,我这样添加:

//...
import { Ng2SliderComponent } from 'ng2-slider-component/ng2-slider.component';
import { SlideAbleDirective } from 'ng2-slideable-directive/slideable.directive';
import { Ng2StyledDirective } from 'ng2-styled-directive/ng2-styled.directive';

//...

@NgModule({
    declarations: [ 
        //...
        SlideAbleDirective,
        Ng2StyledDirective,
        Ng2SliderComponent
    ],
    // ...
    exports: [
        Ng2SliderComponent,
        Ng2StyledDirective
    ],
    //...

我还修正了module.id错误,将+ ""追加到line 401 ng2-slider.component.js

经历了所有这些,我现在又遇到了另一个错误,我无法弄明白:

  

Ng2SliderComponent.ngfactory.js:199 ERROR TypeError:无法读取   未定义的属性'组件'       在Ng2StyledDirective.ngAfterViewInit(vendor.bundle.js:24206)       at callProviderLifecycles(vendor.bundle.js:12979)       at callElementProvidersLifecycles(vendor.bundle.js:12954)       at callLifecycleHooksChildrenFirst(vendor.bundle.js:12938)       在checkAndUpdateView(vendor.bundle.js:14043)       在callViewAction(vendor.bundle.js:14400)       在execComponentViewsAction(vendor.bundle.js:14332)       在checkAndUpdateView(vendor.bundle.js:14041)       在callViewAction(vendor.bundle.js:14400)       在execComponentViewsAction(vendor.bundle.js:14332)

所以,这已经完全阻止了我的任务。你能帮我修一下这个bug吗?或者也许指向一个NG2滑块,让我自定义背景栏和旋钮......我很乐意使用它:https://material.angular.io/components/slider/overview但我没有看到一种方法来自定义它的外观(我需要能够更改背景图像但在MDL中更改它似乎没有任何效果。)无论如何,请帮忙!

修改

通过该组件的内部结构,我注意到它在这一行上失败了:

var component = (<any>this._view)._element.component;

我认为这是一个老方法来获取组件本身,我发现这个链接显示了一些方法来解决这个问题:https://github.com/angular/angular/issues/8277#issuecomment-288285510

对我有用的是在NG 4中这样做:

(<any>this._view.injector).view.context

0 个答案:

没有答案