gpt4 book ai didi

javascript - Ember.js Controller 不工作

转载 作者:行者123 更新时间:2023-11-29 22:08:36 26 4
gpt4 key购买 nike

我无法访问我的数组 Controller 变量。例如,我有这个简单的应用程序:

App.js

App = Ember.Application.create();

App.ApplicationAdapter = DS.FixtureAdapter.extend();

App.Router.map(function() {
this.route('hello');
});

App.IndexRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('hello');
}
});

App.HelloController = Ember.ArrayController.extend({
name: 'tom'
});

App.HelloRoute = Ember.Route.extend({
model: function() {
return this.store.find('hello');
}
});

App.Hello = DS.Model.extend({
title: DS.attr('string')
});

App.Hello.FIXTURES = [{
id: 1,
title: 'hello'
},{
id: 2,
title: 'hello'
}];

我的观点是:

<script type="text/x-handlebars" data-template-name="application">
<h2>Welcome to Ember.js</h2>

{{outlet}}
</script>


<script type="text/x-handlebars" data-template-name="hello">
{{#each}}
{{title}} {{name}}
{{/each}}
</script>

当我保存这段代码时,页面只呈现“你好”“你好”,我期待“你好汤姆”“你好汤姆”。我做错了什么?

感谢帮助!

最佳答案

问题是您要将每个语句中的上下文更改为模型,因此上下文中不再有名称。

http://emberjs.jsbin.com/UzUxIwa/1/edit

 <script type="text/x-handlebars" data-template-name="hello">
{{#each item in controller}}
{{item.title}} {{controller.name}}
{{/each}}
</script>

老实说,比这更好的方法是使用 itemController 并将属性放在该 Controller 上

http://emberjs.jsbin.com/UzUxIwa/2/edit

App.HelloController = Ember.ArrayController.extend({
itemController:'singleHello'
});

App.SingleHelloController = Ember.ObjectController.extend({
name: 'tom'
});

{{#each item in controller}}
{{item.title}} {{item.name}}</br>
{{/each}}

关于javascript - Ember.js Controller 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19532363/

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