2
我的應用程序有兩個控制器,LoginController和RsvpController。我想加載與當前登錄相關的Rsvps列表。如何從另一個控制器(不是來自模板)訪問另一個控制器的屬性
我登錄的代碼似乎工作 - 但我無法避免以下警告: 「棄用:控制器#controllerFor已過時,請使用控制器#改爲需要」
我也懷疑我沒有按照餘燼的方式來做事情,所以我很感激任何關於如何改進這段代碼以使用更多餘燼功能的評論。
這裏是控制器:
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>
是啊,這固定它。我確信我嘗試過了(但是當我嘗試使用這種語法時可能會破壞其他東西) – user2438445