Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取组件本身的容器名称?_Javascript_Ember.js_Ember Cli - Fatal编程技术网

Javascript 如何获取组件本身的容器名称?

Javascript 如何获取组件本身的容器名称?,javascript,ember.js,ember-cli,Javascript,Ember.js,Ember Cli,如何获取组件本身的容器名称 this.componentNameStream用于在中进行某种工作 为什么??出于子类化原因: // in components/blah.js export default MyComponent.extend({}); // in templates/components/my-component.hbs <div class="someLayout"> // partialName is now "components/blah" {{

如何获取组件本身的容器名称

this.componentNameStream
用于在中进行某种工作

为什么??出于子类化原因:

// 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>
//在components/blah.js中
导出默认MyComponent.extend({});
//在模板/components/my-component.hbs中
//partialName现在是“组件/废话”
{{partialName}}

我不确定我是否完全理解您试图执行的操作,但不建议使用
{{partial}
(请参阅)

为什么不使用
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>
//在components/my-foo.js中
导出默认组件。扩展({
证明某事:错误
});
//在components/my-bar.js中
导出默认MyFooComponent.extend({
布局名称:“组件/my foo”,
展示一些东西:真的
});
//在templates/components/my-foo.hbs中
{{{#如果展示某物}
我是酒吧的组成部分!
{{/if}

如果确实需要使用分部,可以使用包含分部名称的属性替换
showSomething

我希望此类具有相同的布局,但模板不同。组件不能有模板,所以我选择了
render
——保持父类独立于它的子类。我只是希望一切都能自动地、连贯地工作。谢谢你抽出时间。
// 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>