我的应用程序有两个控制器,LoginController 和 RsvpController。我想加载与当前登录相关的 Rsvps 列表。
我的登录代码似乎有效——但我无法避免以下警告:“弃用:不推荐使用 Controller#controllerFor,请改用 Controller#needs”
我也怀疑我没有以 ember 的方式做事,所以我很感激任何关于如何改进此代码以使用更多 ember 功能的评论。
这是控制器:
App.RsvpController = Ember.ArrayController.extend({
needs: ['login'], // borrows from login controller
content: [],
loadModel : function() {
var theCode = this.controllerFor('login').get('code');
console.log("Loading Model for code " + theCode);
var rsvpArray = App.Rsvp.find({
code : theCode
});
this.set('content', rsvpArray);
rsvpArray.addObserver('isLoaded', function() {
console.log("Loaded rsvpArray" + Em.inspect(this));
});
}.property('controllers.login.code'), // reload model if the user changes login
});
这是 index.html 的一部分:
<script type="text/x-handlebars" id="rsvp">
<p>placeholder for <b>RSVP</b></p>
{{#if controllers.login.name }}
<!-- rsvp code here -->
Logged in with code {{controllers.login.code}}
{{ loadModel }} <!-- call loadModel function to populate model when this is rendered -->
{{#each model}}
<p>givenName {{givenname}}</p>
{{/each}}
{{else}}
<i>Please login first!</i>
{{/if}}
</script>