簡體   English   中英

如何獲取自身內部組件的容器名稱?

[英]How do i get the container name of a component within itself?

如何獲取自身內部組件的容器名稱?

this.componentNameStream1.11中 this.componentNameStream用於某種工作。

// in components/my-component.js
export default Component.extend({
   layoutName: "components/my-component",
   partialName: function() {
     //return "my-component"; somehow....
   }.property(); 
});

為什么? 出於子類原因:

// in components/blah.js
export default MyComponent.extend({});

// in templates/components/my-component.hbs
<div class="someLayout">
  // partialName is now "components/blah"
  {{ partial partialName }}
</div>

不確定我是否完全了解您要做什么,但不建議使用{{partial}} (請參閱https://github.com/dockyard/styleguides/blob/master/ember.md#templates )。

為什么不簡單地使用layoutName在兩個組件之間共享模板?

// in components/my-foo.js
export default Component.extend({
  showSomething: false
});

// in components/my-bar.js
export default MyFooComponent.extend({
  layoutName: "components/my-foo",
  showSomething: true
});

// in templates/components/my-foo.hbs
<div class="someLayout">
  {{#if showSomething}}
     I am the bar component!
  {{/if}}
</div>

如果確實需要使用部分,則可以用一個包含要顯示為字符串的部分名稱的屬性替換showSomething

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM