无法从Ember中的容器视图中的视图控制器获取值

时间:2012-12-21 10:03:48

标签: ember.js

你好Ember jedi大师,

我正在学习Ember的框架,并在使用车把帮助器时遇到一些困惑。

首先,我在js和html中创建了一些视图模板,并使用containerView对这些模板进行分组。

但是我遇到了麻烦,我无法显示我在这些模板视图的控制器中描述的值。

我的HTML部分是这样的:

    <script type="text/x-handlebars" data-template-name="main">
        <p>this is main template</p>
        {{outlet nav}}
    </script>
    <script type="text/x-handlebars" data-template-name="nav">
    </script>
    <script type="text/x-handlebars" data-template-name="child">
        <p>this is the child in nav, value is {{value}}</p>
    </script>

这是我在jsfiddle上的示例代码(包括JS部分): http://jsfiddle.net/9K7D4/

我的问题是:

  1. 当从容器视图呈现子视图时,我无法获取在子视图的控制器中定义的值。我必须错过文件中的某些内容..只是想不出来......
  2. 感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

在您的示例中,尽管子应用程序初始化期间实例化了子控制器,但它未作为子视图的控制器连接(我认为框架中缺少某些内容)。

无论如何,如果要在子视图中引用它,则必须使用valueBinding: 'App.router.cController.content.value'在路由器中查找。注意我使用小写,因为按照惯例,ember会创建一个XxxController实例xxxController

然后在模板中,由于您要使用视图本身的属性,因此必须使用view关键字才能执行此操作。

请参阅http://jsfiddle.net/9K7D4/14/