【问题标题】:Unable to use Dojo toolkit widgets within an angularjs application无法在 angularjs 应用程序中使用 Dojo 工具包小部件
【发布时间】:2014-09-01 18:12:37
【问题描述】:

我正在尝试在我的 angularjs 应用程序中使用 Dojo 仪表;我知道 Dojo 本身是一个提供 MVC(如 angularjs)的框架,但在这一点上,我有一个 angularjs 应用程序,我想使用来自其他库的现有小部件,使用 angularjs 指令。

当我运行我的简单小部件示例时,我不断收到此错误 - Uncaught TypeError: undefined is not a function - 这是一个显示问题的 plunker

http://plnkr.co/edit/Yzkp5r?p=preview

我不确定我哪里出错了。我正在准备好的 dom 中运行它,当错误发生时,看起来我的 div 元素没有将原型设置为 HTMLDivElement,这很奇怪。我可以从 chrome 控制台以相同的方式创建相同的仪表,这表明我正在做一些早期的事情,或者在创建我的 Dojo 小部件时某些事情还没有准备好。更具体地说,错误来自

var glossyCircular = new GlossyCircularGauge(
                                                        {
                                                            background: [255, 255, 255,    0],
                                                            title: 'Value',
                                                            id: gaugeId,
                                                            width: 150,
                                                            height: 150
                                                        },parent);

感谢任何帮助。

谢谢

【问题讨论】:

  • plnkr 看起来不完整。
  • 我很抱歉 - 分叉 plunker 时犯了一个错误 - plnkr.co/edit/Yzkp5r?p=preview 现在可以使用
  • 我注意到您已经有了答案,但我只想说您可以通过使用在 link() 函数中获得的元素并将 ID 添加到您的范围:plnkr.co/edit/ILl51svqwsL03X761WMs?p=preview
  • 您好 Dimitri,非常感谢您。这很有帮助。你能帮我理解一下 scope: {gaugeId: '@'} 是什么意思吗?我看到它已将范围属性绑定到 id,但希望更清楚地说明这一点。
  • 它正是这样做的:它从标签中获取属性并将其设置在范围内,当然,将虚线语法转换为驼峰式(因此'gauge-id'变成了gaugeId)。见:stackoverflow.com/questions/14050195/…

标签: angularjs dojo angularjs-directive dojox.grid


【解决方案1】:

Dojo 查询返回一个 DOM 列表,您将其传递给 GlossyCircularGauge。但是您需要传递一个元素,在您的情况下为parent[0]http://plnkr.co/edit/Sj4madvp7Fj88VriUq23?p=preview

【讨论】:

    猜你喜欢
    • 2022-06-14
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多