在ember路线中设置模型

时间:2014-05-25 19:42:02

标签: ember.js

我正在召集这样的活动:

{{#each}}
  <div class='row'>{{name}}  <a {{action showModal this}} href="#">Open modal</a>
{{/each}}

并且有这条路线,但需要为模态视图设置模型,但似乎没有任何效果。关于如何使其发挥作用的任何想法?

App.ApplicationRoute = Ember.Route.extend({
    events: {
        showModal: function(obj) {
            var v = this.container.lookup('view:modal');
            // this.get('controller').set('model',obj); nope
            v.appendTo(Emberjs1.rootElement);

        }
    }
});
事先提前

1 个答案:

答案 0 :(得分:2)

您可以直接在视图上设置属性,并使用view.property

在视图模板中访问它们
  var v = this.container.lookup('view:foo');
  v.set('bar', 'hello');
  v.appendTo(App.rootElement);

然后在模板中它

  {{view.bar}}

http://emberjs.jsbin.com/qofoxazu/1/edit

如果你真的想要创建一个控制器/模型,你可以得到一个控制器,在控制器上设置模型,然后在你的视图上设置该模型。

  var v = this.container.lookup('view:foo'),
      controller = this.container.lookup('controller:foo');
  controller.set('model', 'hello');
  v.set('controller', controller);
  v.appendTo(App.rootElement);

然后您的控制器将在范围内,您不必使用view来访问属性。

http://emberjs.jsbin.com/qofoxazu/2/edit