代码之家  ›  专栏  ›  技术社区  ›  J. Doe

无法在ng include的模板中初始化元素

  •  0
  • J. Doe  · 技术社区  · 6 年前

    enter image description here

    -一个物体 items component2 -用户可以使用4个不同的操作(组件上的按钮1)来管理此对象 -这些动作(为了简单起见)可以引用不同类型的情节。i、 e当按下动作1时,数据在里面 -这些情节将出现在 ng-include

    一般来说,到目前为止,我处理它的方式是使用服务(注入到这两个组件中)。单击操作按钮时,将从服务广播一个事件,当该事件到达组件2时,其控制器将相应的变量(action-1-on、action-2-on、action-3-on等)设置为true,并显示ng include的内容。

    我正面临最后一步的问题。例如,在其中一个模板(例如action1.html)中,我有一个range元素,我想将它初始化为 noUiSlider 元素。要做到这一点 $onInit 组件2 控制器,我添加以下代码:

    var slider = document.getElementById('test-slider');
    
    noUiSlider.create(slider, {
        start: [20],
        step: 1,
        orientation: 'horizontal', 
        range: {
            'min': 0,
            'max': 100
            },
        format: wNumb({
            decimals: 0
            })
        });
    

    由此,我假设javascript找不到id为test slider的元素

    所以,在解决这个错误之前,我想问的是,这种方法(使用服务和两个组件)是否合理且“有角度”,或者有没有更直接、更清晰的方法(可能是ui路径?)。我更喜欢用角度更大的方式来解决这个错误。如果我的方法是好的,我如何从$onInit函数初始化这个元素?我应该加些延迟吗?

    欢迎有任何想法和意见。

    0 回复  |  直到 6 年前