2
我有以下代碼。 (我只是複製路由器,因爲此時應用程序有500條線) 我需要的是從狀態'房間'切換到'guests.new'。Ember - 從一種狀態切換到另一種狀態
當我到達房間狀態時,它會加載一個模板,我將其稱爲動作'newGuest',以便將狀態更改爲'newGuest'屏幕。但我無法實現它的工作。 在螢火蟲我得到這個錯誤:
g[a] is undefined
這裏的路由器代碼。 希望你能幫助我。
App.Router = Ember.Router.extend({
enableLogging:true,
location:'hash',
gotoRooms:Ember.Route.transitionTo('rooms.index'),
gotoGuests:Ember.Route.transitionTo('guests.index'),
gotoBookings:Ember.Route.transitionTo('bookings'),
gotoHome:Ember.Route.transitionTo('root.index'),
root:Ember.Route.extend({
index:Ember.Route.extend({
route:'/',
connectOutlets:function (router) {
App.HomeView.appendTo('#main-content .container_12');
},
enter: function(){
console.log('Entro Home');
},
exit: function(){
App.HomeView.remove();
}
}),
guests:Ember.Route.extend({
route:'/guests',
index:Ember.Route.extend({
route:'/',
connectOutlets:function(router) {
App.GuestsView.appendTo('#main-content .container_12');
},
enter: function(){
console.log("Entro Guests");
},
exit: function(){
App.GuestsView.remove();
},
}),
new:Ember.Route.extend({
route:'/new/:bed',
deserialize: function(manager, params) {
console.log('New Guest \nBed:'+params['bed']+"\n Date:"+params['date']);
App.GuestView.appendTo('#main-content .container_12');
},
connectOutlets:function(){
alert("hola");
},
exit: function(){
App.GuestsView.newGuestView.remove();
}
})
}),
rooms:Ember.Route.extend({
newGuest:Ember.Route.transitionTo('guests.new'),
route:'/rooms',
index:Ember.Route.extend({
route:'/',
connectOutlets:function(router) {
App.RoomsView.appendTo('#main-content .container_12');
},
enter: function(){
console.log("Entro Rooms");
},
exit: function(){
App.RoomsView.remove();
}
})
})
})
});
謝謝@Akash,但它仍然無法正常工作。 我使用的是ember-1.0.pre。 調用「newGuest」模板如下:
<script type="text/x-handlebars" data-template-name="rooms">
{{#each room in App.Rooms}}
<div class="grid_4">
<div class="block-border">
<div class="block-header">
<h1>{{room.screen}}</h1><span></span>
</div>
<div class="block-content">
<ul class="block-list">
{{#each bed in room.camas}}
{{#if bed.guestId}}
<li {{action "viewGuest" on="click"}} class="occupied">{{bed.id_guest}}</li>
{{else}}
<li class="free" {{action "newGuest" on="click"}}>Free Bed</li>
{{/if}}
{{/each}}
</ul>
</div>
</div>
</div>
{{/each}}
</script>
我也試着與Ember,最新的,因爲我在之前的版本提出了一些路由問題不同的線程讀過。 現在事實證明,與最新的燼,我不能定義計算屬性。至少這是加載頁面時在控制檯上彈出的內容。
任何線索?
非常感謝!
這很有趣,改變你的newGuest:Ember.Route.transitionTo( 'guests.new'),以newGuest:功能( ){console.log(「event fired」);},這會告訴我們你的事件是否真的到達函數。還檢查你的括號,他們似乎並不對齊。 – Akash
改變了它,仍然得到相同的錯誤。 你的意思是什麼括號?他們似乎與我對齊 – Pablo
我認爲你的行爲的語法可能是錯誤的,它應該是{{action newGuest this href = true}}。這將自動註冊點擊。 – Akash