使用Ember.js,如何手动调整模板范围并查看其相应的控制器?

时间:2012-11-16 01:45:14

标签: javascript web-applications ember.js handlebars.js

假设我发起了一个控制器:

    App.pageController = Ember.Controller.create({

         pageNumber:  '12',
    })

及其相应的观点:

    App.pageView = Ember.View.create({

        templateName: 'page-template',

    }).append();

现在它的模板:

    <script type="text/x-handlebars" data-template-name = 'page-template'>
        <div class = 'page-background'>
            page: {{ pageNumber }}
        </div>
    </script>

我打算让pageController为pageView提供渲染上下文,但我不知道如何为此明确提供指令,因此不会渲染pageNumber。

我可以通过在pageView中添加pageNumberBinding来解决这个问题:

   App.pageView = Ember.View.create({

        templateName: 'page-template',
        pageNumberBinding: 'App.pageController.pageNumber',

    }).append();

并按如下方式重写模板

 page: {{ pageNumber contextBinding="this" }}

但你会怎么做呢?

1 个答案:

答案 0 :(得分:2)

通过在视图上设置controller属性,视图会将其不知道的属性转发给控制器。

所以,使用你的例子,你可以这样做:

App.pageView = Ember.View.create({
    controller:   App.pageController,
    templateName: 'page-template',
}).append();

查看Ember docs for Ember.Viewintroduction on their site