我是Ember的新手,我在從URL加載JSON時遇到問題。下面是我有:無法在Ember.js中加載外部JSON
var App = Ember.Application.create();
App.ApplicationController = Ember.Controller.extend();
App.ApplicationView = Ember.View.extend({ templateName: 'application' });
App.OrdersListController = Ember.Controller.extend();
App.OrdersListView = Ember.View.extend({ templateName: 'orders' });
App.Order = Ember.Object.extend();
App.Order.reopenClass({
find: function(){
//not implemented yet
},
findAll: function(){
var content = [];
$.ajax({
url: 'http://api.domain/orders',
dataType: 'jsonp',
success: function(response){
response.data.forEach(function(order){
this.content.addObject(App.Order.create(order))
}, this)
}
});
return this.content;
}
});
App.Router = Ember.Router.extend({
enableLogging: true,
// The initial state for the router, contains every other.
root: Ember.Route.extend({
goOrders: Ember.Route.transitionTo('orders'),
goLocations: Ember.Route.transitionTo('locations'),
goReports: Ember.Route.transitionTo('reports'),
goUsers: Ember.Route.transitionTo('users'),
goHelp: Ember.Route.transitionTo('help'),
//Authenticated routes
index: Ember.Route.extend({
route: '/',
redirectsTo: 'orders'
}),
orders: Ember.Route.extend({
route:'/orders',
initialState: 'index',
//Orders view.
index: Ember.Route.extend({
route: '/',
connectOutlets: function(router) {
router.get('applicationController').connectOutlet({
name:'ordersList',
context: App.Order.findAll()
});
}
})
})
})
});
App.initialize();
在我的模板(簡體):
<script type="text/x-handlebars" data-template-name="application">
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="orders">
{{#each order in controller.content}}
<p>id: {{order.ord_id}}</p>
{{/each}}
</script>
有了這個,我不要和錯誤,但沒有顯示出來。如果我將他的JSON粘貼到connectOutlet的上下文中,它可以工作。我的findAll()函數有問題嗎?
您想要將'App.Order.find()'或'App.store.findAll(App.Order)'傳遞給'connectOutlets'調用,而不是'App.Order.findAll()' – zentralmaschine
我通過App.store.findAll(App.Order)我得到一個錯誤:TypeError:'undefined'不是一個對象(評估'App.store.findAll')是不是Ember數據?我沒有使用它。 – jabbermonkey
如果我這樣做{{#每個順序在控制器}}我得到這個錯誤:TypeError:'undefined'不是一個函數(評估'b.addArrayObserver(this)') – jabbermonkey