视图的上下文和渲染助手的emberjs

时间:2015-03-07 00:05:17

标签: ember.js ember-controllers

我对模板的上下文感到很困惑,请参阅下面的代码

<script type="text/x-handlebars">
    <div>
        <h1>hello world</h1>
        {{view 'temp'}}
        {{render 'temp'}}
    </div>
</script>

var App = Ember.Application.create({
  LOG_TRANSITIONS: true
});

App.ApplicationController = Ember.Controller.extend({
    age: 13,
});

App.TempController = Ember.Controller.extend({
    age: 14,
});

App.TempView = Ember.View.extend({
    age: 123,
    template: Ember.Handlebars.compile('<div>{{age}}</div>')
});

对于{{view&#39; temp&#39;}},它呈现13,因为它使用应用程序控制器作为其范围/上下文。对于{{render&#39; temp&#39;}},根据我的理解,它将使用TempView和TempController作为其上下文。然而,它什么都没有。 14和123都不会渲染。它如何呈现分配给视图的年龄?

1 个答案:

答案 0 :(得分:0)

使用组件,它们的范围是隔离的。

除了路径的最高级别之外的所有用途都不推荐使用视图。 Ember 1.12预计也允许在那里使用组件,然后视图将被完全弃用。

演示:http://emberjs.jsbin.com/zirevu/1/edit?html,js,output