У меня есть полный источник на https://github.com/ericgorr/myproject.git с приложением cascading_datasource.Настройка источника SC.DataSource, который содержит только один объект
У меня есть item_model.js со следующим кодом:
CascadingDatasource.Item = SC.Record.extend(
{
name: SC.Record.attr(String),
ph: SC.Record.attr(String)
});
CascadingDatasource.Item.itemQuery = SC.Query.remote(CascadingDatasource.Item, { targetDataSource: 'itemDataSource' });
Моего data_source.js является:
sc_require('data_sources/itemDataSource');
CascadingDatasource.dataSource = SC.CascadeDataSource.create(
{
dataSources: ['itemDataSource'],
itemDataSource: CascadingDatasource.itemDataSource,
});
Моего itemController.js является:
CascadingDatasource.itemController = SC.ObjectController.create({
});
Моего itemDataSource .js:
sc_require('models/item_model');
CascadingDatasource.itemDataSource = SC.DataSource.create(
{
fetch: function(store, query)
{
var handled = false,
itemRecord;
if (query.recordType === CascadingDatasource.Item && query.targetDataSource === 'itemDataSource')
{
CascadingDatasource.store.loadRecord(CascadingDatasource.Item, {
name: 'the name',
ph: 'the phone number'
});
var theRecords = CascadingDatasource.store.recordsFor(CascadingDatasource.Item);
// Indicate that we took this request.
handled = true;
}
return handled;
}
});
Именно здесь у меня отсутствует ключевой кусок. Я хочу, чтобы этот источник данных содержит только один объект, но я не знаю, как вернуть его содержание
Моего ready_state.js является:
CascadingDatasource.ReadyState = SC.State.extend({
enterState: function()
{
CascadingDatasource.itemController.set('content', CascadingDatasource.store.find(CascadingDatasource.Item.itemQuery));
CascadingDatasource.getPath('mainPage.mainPane').append();
},
exitState: function()
{
CascadingDatasource.getPath('mainPage.mainPane').remove();
}
});
У меня есть SC.LabelView со следующим:
valueBinding: SC.Binding.oneWay('CascadingDatasource.itemController.name')
Опять же, что, как представляется, проблема заключается в том, что:
CascadingDatasource.store.find(CascadingDatasource.Item.itemQuery)
не возвращает и я не уверен, почему.
Если все работает правильно, на главной странице должен находиться SC.LabelView, который должен быть привязан к свойствам «name» и «ph» результата, содержащегося в CascadingDatasource.itemController. Однако в настоящее время основная страница пуста.
В настоящее время у меня нет ошибок на консоли Chrome.
Perfect. Спасибо. Будет обновлен источник github. – ericg