繁体   English   中英

将余烬对象数组从余烬组件传递到模板

[英]passing array of ember objects from ember component to template

我正在尝试利用余烬组件来实现可重用性。 我正在尝试使车把模板的代码免费,并且模板仅具有从控制器/组件传递来的字段/内容的占位符。

我在以下实施中遇到了一个奇怪的问题

问题1:当我将对象数组传递给Ember.select contentBinding时,出现以下错误

Uncaught Error: Assertion Failed: The value that #each loops over must be an Array. You passed {_direction: fwd, _from: <Ember.Object:ember257>,<Ember.Object:ember258>, _to: content, _directionMap: [object Object], _readyToSync: true, _oneWay: undefined}

问题2:与模型的价值绑定没有发生。 我想将每个字段的值绑定到模型对象。

这是我的代码看起来像:

App.Core.CeGender = [
  Ember.Object.create({ value: "Male", id: 'Male' }),
  Ember.Object.create({ value: "Female", id: 'Female' })
  ],


App.Core.fooFields = [
Ember.Object.create({
    type: Ember.TextField,
    firstName: "",
    label: "First Name",
    value: "controller:model.firstName"
}), Ember.Object.create({
    type: Ember.TextField,
    label: "Middle",
    name: "middleInitial",
    placeholder: "Middle",
    value: "controller:model.middleName"
}),
Ember.Object.create({
    type: Ember.Select,
    contentBinding: App.Core.CeGender,
    placeholder: "gender",

}),

这是我的组件:

App.Core.Component = Ember.Component.extend({
    tagName: '',
    title: 'Your Information',
    classNames: ["xxxxx"],
    layoutName: "xxxx",
    fields: App.Core.fooFields ,

});

这是我的组件脚本:

<script type="text/x-handlebars" data-template-name="components/xxxx">
{{#each field in fields}}
           {{ view field.type

            contentBinding=field.contentBinding
            name=field.name
            id=field.name
            placeholder=field.placeholder
            data-rule-required=field.dataRuleRequired
            data-rule-alphachar=field.dataRuleAlphachar
            data-msg-required=field.dataMsgRequired
            data-rule-maxlength=field.dataRuleMaxlength
            data-set=field.dataSet
            data-validation=field.dataValidation
            optionValuePath=field.optionValuePath
            optionLabelPath=field.optionLabelPath
            pattern=field.pattern
            }}
       {{/each}}

</sript>

任何帮助是极大的赞赏 !!

注意:对于问题1:如果我将App.Core.fooFields作为json元素数组传递给例如:

App.Core.fooFields = [{
        type: Ember.TextField,

    },
{type: Ember.select,
contentBinding: App.Core.CeGender,
},]

我没有看到我上面提到的错误,并且contentbinding将这个数组添加到模板中的字段中。 我不知道为什么在这些情况下余烬的表现会有所不同。

问题看起来像在这里:

Ember.Object.create({
  type: Ember.Select,
  contentBinding: App.Core.CeGender,
  placeholder: "gender"
})

您应该将'contentBinding'更改为简单的'content'-因为您实际上并未绑定任何内容:

Ember.Object.create({
  type: Ember.Select,
  content: App.Core.CeGender,
  placeholder: "gender"
})

您的模板还需要引用.content而不是.contentBinding

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM