У меня есть приложение, работающее с Ember 1.12.0. Я простой шаблон называется /app/templates/repositories.hbs
с этим содержанием:Не удается поделиться зависимостями от контроллера
{{controllers.user.login}}
Я добавил это в контроллере app/controllers/repositories.js
:
import Ember from 'ember';
export default Ember.ArrayController.extend({
needs: "user",
});
У меня есть этот маршрут:
import Ember from 'ember';
export default Ember.Route.extend({
model: function(params) {
var user = this.modelFor('user');
console.log(user);
return Ember.$.getJSON('https://api.github.com/users/'+user.login+'/repos');
}
});
И этот маршрутизатор:
import Ember from 'ember';
import config from './config/environment';
var Router = Ember.Router.extend({
location: config.locationType
});
Router.map(function() {
this.route('index', {path: '/'});
this.resource('user', {path: '/users/:login'}, function() {
this.resource('repositories');
});
});
export default Router;
Согласно the documentation. Я должен показать логин пользователя, но у меня ничего нет. Он показывает объект пользователя в консоли, но не в представлении.
Является ли решение?
Это работает, но это странно, потому что документ не содержит этого. – Dougui
Что вы имеете в виду, что документы не содержат этого? Если вы хотите использовать общие зависимости, вам нужно будет использовать в шаблоне что-то вроде 'controllers.user.user.login', поскольку объект' user' определен ** на ** 'user' controller. Однако, как я уже сказал, вам нужна модель, а не контроллер. Поэтому предлагаемое мной решение является более чистым. –