JSFiddleで簡単なテストを正常に実装した後、私は少し頭がおかしくなりました。ブランチの ember-reloaded テンプレートを使用して、同じアプリケーションをローカルでビルドすることにしました。ほとんど動作しますが (私はそう思います)、メインのテンプレート ( activities.hbs ) をうまくロードできません。代わりに、次のエラーが表示されます。
Assertion failed: an Ember.CollectionView's content must implement Ember.Array.
You passed <(generated activities controller):ember204>
参照すべきアクティビティ コントローラーは次のとおりです (ただし、「生成された」という言葉から、何か魔法が起こっているのではないかと思います)。
App = require("app");
App.ActivitiesController = Ember.ArrayController.extend({
toggleDetails: function(target) {
target = "#activity-details-" + target;
console.log("Pressed " + target);
if (jQuery(target).is(":hidden")) {
jQuery( target ).slideDown( "fast" );
} else {
jQuery( target ).slideUp( "fast" );
}
}
});
これは意味がありますか?他の人がこのエラーについて投稿しているのを見たことがありますが、私が経験していることと直接的な相関関係は見つかりません.
ところで、追加のコンテキストとして、定義したさまざまなオブジェクトを表示する初期化スクリプトを次に示します。簡潔にするために、すべてのソースを含めていません (各ファイルは非常に短いですが)。
// Namespace
require ('app');
// ===== Router =====
App.Router.map(function() {
this.resource('index', { path: '/' }, function() {});
this.resource('activities', { path: '/activities' }, function() {});
this.resource('hi', { path: '/hi' }, function() {});
});
// ===== Routes =====
require ('routes/ActivitiesRoute');
// ===== Store =====
require('stores/fixture');
// ===== Models =====
require('models/Activity');
// ===== Views =====
require('views/IndexView');
// require('views/ActivitiesView');
// ===== Controllers =====
require ('controllers/ActivitiesController');
// ===== Template Helpers =====
require('helpers/time');
// ===== Templates =====
require ('templates/application');
require ('templates/hi');
require ('templates/activities');