在 ember 中选择不加载数据 - 有工作示例吗?

标签 select ember.js

我是 Ember JS 的新手,我正在尝试弄清楚如何创建 Ember.Select 这将允许为用户创建新的工作。

这是我的 form.handlebars 中的代码的一部分:

{{view Ember.Select viewName="job-user"
            contentBinding="users"
            optionLabelPath="content.name"
            optionValuePath="content.id"

            }}

我在 JobsNewController 中:

JP.JobsNewController = Ember.ObjectController.extend({
    needs: ['users'],
    users: [],
    usersBinding: "controllers.users"

});

这就是我的 UsersController 的样子:

JP.UsersController =  Ember.ArrayController.extend();

当我从填充了 UserController 的屏幕转到 newJob 屏幕时,它正在工作,但是当我直接转到 jobs/new 时,它无法使用数据填充 select 。如何强制 Ember 加载此选择的数据?


编辑: 我必须正确设置路线:

JP.JobsNewRoute = Ember.Route.extend( JP.JobsFormable, {
    model: function() {
        return JP.Job.createRecord();
    },
    setupController:function(controller,model) {
        this._super(controller,model);
        controller.set('usersForSelect', JP.User.find());
    }
});

我还修改了表单:

{{view Ember.Select viewName="job-user"
   contentBinding="usersForSelect"
   optionLabelPath="content.name"
   optionValuePath="content.id"
}}

感谢@mavilein 的提示

最佳答案

当您从 URL 访问 JobsNewRoute 时,不会填充 UsersController。因此,将 JobsNewController 中的 users 绑定(bind)到 UsersController 内容将毫无用处,因为 UsersController 为空且未填充。

您可以通过两种方式解决这个问题,都在 JobsNewRoute 中。

第一种方法,更新您的 JobsNewRoute 以填充 UsersController:

JP.JobsNewRoute = Ember.Route.extend({
  setupController: function(controller, model) {
    this.controllerFor('users').set('content', JP.User.find());
  }
});

另一种方法是删除 JobsNewController.usersUsersController 之间的绑定(bind),只需将 JobsNewController.users 填充到 工作新路线:

JP.JobsNewController = Ember.ObjectController.extend({
  users: []
});


JP.JobsNewRoute = Ember.Route.extend({
  setupController: function(controller, model) {
    controller.set('users', JP.User.find());
  }
});

关于在 ember 中选择不加载数据 - 有工作示例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15519121/

相关文章:

表名称附近的 C# 语法错误

javascript - Ember.js 中带有普通 anchor 标记的动态 linkTo

javascript - 存储并返回到 Ember 路线

javascript - Ember 模型与使用 REST 作为 JSON 接收的数据 Hook

css - 选择框元素和 :after

html - <select> 和 :after with CSS in WebKit 的问题

php - 带有 $_POST 的 PDO bindParam 不工作

jQuery:通过标签名称标记(选择)内容文本,无需 ID

javascript - ember.js hbs TextFieldView 中的 View 助手

ember.js - Ember 集成测试模拟转换到另一条路线然后返回