Ember を初めて使用します。
理解を深めるのに役立つものはすべて読みました。
rails テンプレート内で Ember テンプレートをレンダリングすることができました。
現在、getJSON を使用してデータを ember テンプレートにバインドする作業を行っていますが、いくつかのエラーが発生しています。Uncaught TypeError: Cannot call method 'reopenClass' of undefined
Error while loading route: TypeError {}
api/v1/newslinks_controller.rb
class Api::V1::NewslinksController < ApplicationController
respond_to :json
def index
respond_with Newslink.all
end
def create
respond_with Newslink.create(params[:newslink])
end
def update
respond_with Newslink.update(params[:id], params[:newslink])
end
def destroy
respond_with Newslink.destroy(params[:id])
end
end
/api/v1/newslinks.json
{"newslinks":[{"id":1,"title":"A Sample Post","navlink":"This will be a simple post record."}]}
app.js
App = Ember.Application.create({
LOG_TRANSITIONS: true,
LOG_ACTIVE_GENERATION: true,
LOG_VIEW_LOOKUPS: true,
rootElement: '#ember',
ready: function() {
console.log('I am app');
}
});
App.Router.map(function() {
this.resource('newslinks', { path: '/' });
console.log("I am router")
});
App.IndexRoute = Ember.Route.extend({
});
App.NewslinksRoute = Ember.Route.extend({
model: function() {
return App.Newslink.all();
}
});
App.Newslink.reopenClass({
all: function() {
return $.getJSON("/api/v1.newslinks_controller.json").then(function(response) {
var newslinks = [];
response.newslinks.forEach(function(newslink) {
newslinks.push(App.Newslink.create(newslink));
});
return newslinks;
});
}
});
newslinks.handlebars
<div class="offset1">
<h1>Newslinks</h1>
<ul>
{{#each newslink in model}}
<li>{{newslink.title}}</li>
<li>{{newslink.navlink}}</li>
{{else}}
<li>There is no news.</li>
{{/each}}
</ul>
{{outlet}}
</div>
ご協力いただきありがとうございます。