【问题标题】:Issue With MD-DialogMD-Dialog 的问题
【发布时间】:2016-05-20 06:22:40
【问题描述】:

我有一个如下所示的 MD 对话框控制器。

 var HomeController = function ($scope) {

            $scope.demoNonLinear = function () {
var element = document.querySelector('.mdl-stepper#stepper-non-linear');
                if (!element) return false;
                var stepper = element.MaterialStepper;
                var steps = element.querySelectorAll('.mdl-step');
                var step;

                // Upgrade the component.
                if (typeof componentHandler === 'undefined') {
                    console.log('Missing componentHandler');
                } else {
                    console.log('componentHandler is available');
                    componentHandler.upgradeAllRegistered();
                }

                for (var i = 0; i < steps.length; i++) {
                    step = steps[i];
                    step.addEventListener('onstepnext', function (e) {
                        setTimeout(function () {
                            stepper.next();
                        }, 4000);
                    });
                }

            };
        };

线

var element = document.querySelector('.mdl-stepper#stepper-non-linear');

不适用于 md-dialog html,而是适用于主文档。我可以让它在我的 md-dialog 内容上工作吗?

Plunker 链接 "https://plnkr.co/edit/ixMI8FKbhyTgL5sYieVa?p=preview"

【问题讨论】:

  • 如果元素有 id 属性,你可以简单地通过 id var element = document.querySelector('#stepper-non-linear');选择元素
  • 它作为空值出现,但我有一个像
  • 你可以让它工作,但你不应该这样做。永远不要在控制器中查询 DOM。
  • @dfsq 只是为了做一个测试。请告诉我如何查询它。

标签: angularjs


【解决方案1】:

试试这个以角度选择你的元素。

var element = angular.element( document.querySelector( '#stepper-non-linear' ) );

为好的方法而编辑

我已将函数包装在 angular.element(document).ready 事件中,该事件将在文档准备好时执行,而不是 $timeout 方法。

DEMO PLUNKER

【讨论】:

  • 给出以下错误 angular.js:13550 TypeError: element.querySelectorAll is not a function
  • 如果您只使用querySelector,为什么会收到quesrySelectorAll 的错误?
  • 尝试在第6行使用这个angular.element(document.querySelectorAll('.mdl-step'));
  • @mJunaidSalaat 现在没有错误,但变量元素和步骤为空
  • 你能做一个演示小提琴吗?
猜你喜欢
  • 2015-06-16
  • 1970-01-01
  • 2018-08-16
  • 1970-01-01
  • 2016-06-26
  • 1970-01-01
  • 1970-01-01
  • 2019-05-23
  • 2018-12-10
相关资源
最近更新 更多