gpt4 book ai didi

javascript - EmberJS - 如何全局设置所有组件的属性?

转载 作者:行者123 更新时间:2023-12-02 16:37:35 24 4
gpt4 key购买 nike

我有一段数据(对象),它从服务器端脚本打印为全局变量。

user = { id : 1, name: 'foo', avatar : 'http://foo.com/avatar.jpg'}

整个应用程序的各个部分(包括某些组件)都需要这条信息。

我知道我可以遍历每个组件 Controller 并设置一个属性来保存用户对象。

App.FooBarComponent = Ember.Component.extend({
user: user
});


App.AnotherFooComponent = Ember.Component.extend({
user: user
});

如何减少这种重复?有没有办法为所有组件设置属性,以便变量可用于 Handlebars 表达式

<script type="text/x-handlebars" id="components/foo-bar">
<h1>{{user.name}}</h1>
</script>

<script type="text/x-handlebars" id="components/another-foo">
<h1>{{user.name}}</h1>
</script>

我的印象是我应该能够从 Handlebars 表达式访问任何全局 js 变量。但我看来并非如此。

最佳答案

您可以使用应用程序 Controller 来实现此目的:)

 <h1>{{controllers.application.user.name}}</h>

但是,您将需要 Controller 中的ApplicationController:)

另一种方法是创建一个自定义组件q然后像这样扩展它

 App.MyComponent = Ember.Component.extend({
user : user
});
AppFooComponent = App.MyComponent.extend({
//user is gotten from MyComponent
});

关于javascript - EmberJS - 如何全局设置所有组件的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27795952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com