【问题标题】:Accessing Controller from Views in Emeber从 Ember 中的视图访问控制器
【发布时间】:2014-09-24 12:47:39
【问题描述】:

我正在使用 d3 和 ember 构建一个可视化应用程序。

在模板中我声明了这样的视图

{{view 'myview'}} 我已经定义了渲染图表的函数。 我想使用观察属性在控制器中的数据更改时触发这些功能。 我知道所有视图都具有它们所在控制器的相同上下文。

我试试this.controller.get('some_variable'); 输出未定义。 怎么实现???

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    你需要使用get来抓取控制器,this.get('controller.some_variable')

    【讨论】:

    • 嘿...我做了同样的...查看我制作的这个 jsbin jsbin.com/fedak/3/edit ...如果我不使用 this.get('controller .name') 或 this.get('controller.lname') 并编写类似 this.get('context') 或任何随机字符串 eg.alert('initialised')...'func' 不会触发。似乎您必须访问 init 中的控制器才能使观察者工作。
    • 是的,我以前见过这个问题,它与 Ember 没有查看在其范围内从未访问过的项目有关。我不确定你的最终游戏是什么,但即使只是在视图中显示项目也会在其范围内触发它。 jsbin.com/xojac/1/edit 。虽然就个人而言,我会说这个特定的例子是一个错误。
    • 嘿...谢谢回复...用例是这样的。我正在使用 d3js 和 ember 制作一个可视化应用程序。这是我想要制作的图表 [bl.ocks.org/mbostock/4063530] 具有一些附加功能。我的设计是这样的。 1-首先从后端查询数据 2-当您收到控制器中的设置属性时。 3-视图具有类似于renderChart的功能,它观察属性的任何变化并在属性变化时绘制图表。 4-当用户点击任何内部气泡时......我想为它们创建单独的视图......就像一个标签......这样用户就可以销毁。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多