我可以访问{{#with}}范围内的视图属性吗?

时间:2012-03-04 15:21:43

标签: ember.js

我希望在{{#with}}范围内切换元素的可见性,具体取决于view属性的值。 我可以访问{{#with}}中{{action}}中的查看属性,但我无法访问{{#with}中的查看属性。

以下是示例程序。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="js/libs/jquery-1.6.1.min.js"%3E%3C/script%3E'))</script>
<script src="http://cloud.github.com/downloads/emberjs/ember.js/ember-0.9.5.js"></script>

<script type="text/javascript">
  var App = Em.Application.create();
  App.Test = Em.View.extend({
    content: {
      description: 'names',
      names: [{name: 'bob'}, {name: 'john'}]
    },
    viewDetail: false,
    toggleDetail: function() {
      this.set('viewDetail', true);
    }
  })        
</script>

 <script type="text/x-handlebars">
  {{#view App.Test}}
    {{#with content}}
      {{description}}<br/>
      {{#each names}}
        {{name}}
      {{/each}}
      <br/>
      <button {{action toggleDetail}}>toggle Detail</button> <!-- can access toggleDetail -->
      {{#if viewDetail}} <!-- but can not access viewDetail... -->
        …detail Description...
      {{/if}}
    {{/with}}
  {{/view}}
</script>

我可以访问{{#with}}范围内的视图属性吗?

1 个答案:

答案 0 :(得分:6)

#with修改了Handlebars上下文。您可以使用../恢复某个级别。

尝试一下:

{{#if ../viewDetail}}