1

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

<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 'temp'}},它呈现 13,因为它使用应用程序控制器作为其范围/上下文的视图。对于 {{render 'temp'}},据我了解,它将使用 TempView 和 TempController 作为其上下文。但是,它什么也不渲染。14 和 123 都不会渲染。它如何渲染分配给视图的年龄?

4

1 回答 1

0

使用组件,它们的范围是孤立的。

除了路由的最顶层之外,所有用途都弃用视图。Ember 1.12 预计也允许在那里使用组件,然后视图将被完全弃用。

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

于 2015-03-07T19:53:36.417 回答