javascript - Ember.选择编辑表单的两种方式绑定(bind)

标签 javascript ember.js

在我的 ember 应用程序中,我在模板中定义了一个如下所示的选择元素:

{{view Ember.Select
    content=greetings
    optionValuePath="content.id"
    optionLabelPath="content.code"
    value=selectedGreeting
    selection=selectedGreeting
    prompt="Please choose"}}

此页面的 Controller (共享表单以及用于创建和编辑表单的 Controller )如下所示:

greetings: [
    {code: "Mr.", id: 1},
    {code: "Mrs.", id: 2}
],
selectedGreeting: null,
actions: {
    save: function(){
        var person = this.get('model');
        if (person == null || person.id == undefined)
        {
            // create mode
            var greeting = this.selectedGreeting.id;
            // ....
            var newPerson = this.get('store').createRecord('person',{
                greeting: greeting,
                // ..
            });
            newPerson.save();
            this.transitionToRoute('index');
        }
        else
        {
            // edit mode
            person.set('greeting', this.selectedGreeting.id);
            person.save();
        }
    }
}

这在创建一个新人时非常有效,但是当打开一个现有的人时,选择框会显示提示而不是保存的值(我真的必须使用 jQuery 来执行此操作吗?)。

此外,我认为必须有一种更简单的方法来使用 else 分支中选定的值更新现有模型,因为其他属性会自动修改。

如有任何建议,我们将不胜感激,不幸的是,Ember 的文档在这种情况下没有多大帮助。

最佳答案

Ember.Select View 有很多怪癖。事实上,如果我没记错的话,我在 Github 上看到了一个问题,要求重写整个内容。目前,我假设 prompt 属性优先于 selection 属性。为了解决这个问题,我只需在模板中使用条件。

{{#if model}}
    {{view Ember.Select ... value=selectedGreeting}}
{{else}}
    {{view Ember.Select ... prompt='Please Choose'}}
{{/if}}

另外,你的第二个问题,如果我理解正确的话,你应该能够使用 selection=model.greeting 将选择值绑定(bind)到模型属性。如果您使用上面的模板,则可以使其仅适用于前者而不适用后者。

关于javascript - Ember.选择编辑表单的两种方式绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22142965/

相关文章:

javascript - 类型错误 : this. AjaxPoller 未定义

javascript - 从 Javascript 数组填充 HTML 表

javascript - 防止(jquery ui)日期选择器翻转到当前月份

javascript - Ember.js 异步对象参数

javascript - 在模型中嵌入 ajax 指示器

javascript - Ember.js 一个命名空间中的不同资源

javascript - JQuery .append 的 </select> 标记被忽略

javascript - Ember 全局 App 变量

html - 即使对于有效资源,AWS S3 也会间歇性地返回 403

javascript - 当我运行 npm run start 时出现此错误