使用isVisible ember逻辑或在CSS级别移动此逻辑

时间:2012-06-28 17:40:59

标签: ember.js

任何人都可以指出哪些特定用例正在使用becomeVisible并成为隐藏事件?

我有一个案例,我想隐藏/显示视图取决于特定的状态,并想知道我是否应该通过classNames或使用isVisible Ember Logic在CSS级别移动此逻辑。

以下示例尝试显示当前方案。

Em.ContainerView.extend({

  childViews: ['image','spinner'],
  isLoading: true,

  image: Em.View.extend({
    classNames: ['product_image'],
    classNameBindings: ['isLoading'],
    isLoadingBinding: Em.Binding.oneWay('parentView.isLoading')

  }),

  spinner: Em.View.extend({
    classNames: ['spinner'],
    classNameBindings: ['isLoading'],
    isLoadingBinding: Em.Binding.oneWay('parentView.isLoading')
  })

}) 

CSS类似于:

    > .product_image {
      display:block;
    }

    > .product_image.is-loading {
      display:none;
    }

    > .spinner {
      display:none;
    }

    > .spinner.is-loading {
      display:block;
    }

对这两种情况的优点/缺点的任何建议/评论都将非常感激。

1 个答案:

答案 0 :(得分:1)

我会在视图模板中这样做:

{{#unless content.isLoaded }}
  <div class='product_image is-loading'>....</div>
{{/unless }}
{{#if content.isLoaded }}
  <div class='product_image'>...</div>
{{/if }}