Emberjs كيفية إنشاء عنصر ينتمي إلى جديد
سؤال
أنا أعمل على تطبيق بسيط للمهام حيث ينتمي كل عنصر من عناصر المهام إلى المستخدم.أتلقى هذا الخطأ:
Uncaught Error: Nothing handled the action 'createTodo'.
أعتقد أنني أفتقد مسارًا وربما وحدة تحكم، لكنني لست متأكدًا حقًا مما يجب علي فعله.
التطبيق/router.js:
import Ember from 'ember';
var Router = Ember.Router.extend({
location: TodoENV.locationType
});
Router.map(function() {
this.route('about');
this.resource('users', function() {
this.route('show', {path: ':user_id'});
});
});
export default Router;
التطبيق/الطرق/المستخدمين/index.js:
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
return this.store.find('user');
}
});
التطبيق/النماذج/user.js:
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string'),
todos: DS.hasMany('todo')
});
التطبيق/النماذج/todo.js:
import DS from 'ember-data';
export default DS.Model.extend({
title: DS.attr('string'),
user: DS.belongsTo('user')
});
التطبيق/وحدات التحكم/todo.js:
import Ember from 'ember';
export default Ember.ArrayController.extend({
actions: {
createTodo: function() {
var title = this.get('newTitle');
if (!title.trim()) { return; }
var todo = this.store.createRecord('todo', {
title: title // how do I get the user id?
});
this.set('newTitle', '');
todo.save();
}
}
});
التطبيق/القوالب/المستخدمين/show.hbs:
<h4>{{name}}</h4>
<h5>Todos</h5>
{{input type="text" id="new-todo" placeholder="new todo"
value=newTitle action="createTodo"}}
<ul>
{{#each todos}}
<li>{{title}}</li>
{{/each}}
</ul>
المحلول
المشكلة هي أن createTodo يتم تنفيذه في TodoController أثناء استخدامك createTodo
العمل في users/show
نموذج.يتم إرسال الإجراء إلى UsersShowController
حيث لم يتم تنفيذ createTodo.يتحرك createTodo
العمل في UsersShowController
ويجب أن يكون كل شيء على ما يرام.
لا تنتمي إلى StackOverflow