【发布时间】: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