如何在Ember.Select视图的内容/选择绑定中指定控制器?

时间:2014-02-16 23:26:02

标签: ember.js

我想手动指定Ember.Select视图的控制器:

<script type="text/x-handlebars" data-template-name="selected-date-range">
  <div class="row">
    <div class="col-lg-12">
      <div class="well">
        <img class="dashboard_icon_small" src="{%=URL('static','images/calendar_dashboard_icon_small.png')%}"/>
        <h4>{{content}}
        {{view Ember.Select
          id="locatorSelector"
          contentBinding="Dashboard.LocatorSelectorController.content"
          selectionBinding="Dashboard.LocatorSelectorController.selectedLocator"
          optionLabelPath="content.label"
          classNames="pull-right"}}
        </h4>
  </div>
    </div>
  </div>
</script>

但这不起作用。有可能吗?

如果我在应用程序(仪表板)中复制内容/ selectedLocator,那么我可以像以下一样访问它们:

        {{view Ember.Select
          id="locatorSelector"
          contentBinding="Dashboard.locator"
          selectionBinding="Dashboard.selectedLocator"
          optionLabelPath="content.label"
          classNames="pull-right"}}

但我不想复制这些数据。为什么控制器无法访问?

2 个答案:

答案 0 :(得分:1)

在“contentBinding”中访问所需控制器的模型。然后你可以直接在“selectionBinding”中引用那个模型。见下文:

{{view Ember.Select 
                contentBinding = "controllers.selected_locator.model"
                optionLabelPath = "content.label"
                selectionBinding = "model. selectedLocator"
                classNames = "pull-right"}}

这应该有效。

答案 1 :(得分:0)

这应该有效,但是你之前有create个控制器并设置它们的内容(在路线中)。你做到了吗?

更清洁的方法是通过当前的needs包含所需的控制器,您可以在模板中访问它。

将它放在你的控制器中:

needs: ['selected_locator']

然后在你的模板中:

{{view Ember.Select
          id="locatorSelector"
          contentBinding="controllers.selected_locator.content"
          selectionBinding="controllers.selected_locator. selectedLocator"
          optionLabelPath="content.label"
          classNames="pull-right"}}