ember.js 如何禁用复选框中的某些列Ember js?

mepcadol  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(115)

x1c 0d1x我可以知道如何禁用除步骤2、3和4之外的其他复选框吗?这些复选框是复选框组件的链接。我将复选框组件链接到route中的propertyName列:“active”。下面是route代码的一部分。

export default Route.extend({
    model() {
        let results = {
            workflow: {
                columns: [
                    {
                        "propertyName": "step",
                        "title": "Step",
                        editable: false
                    },
                    {
                        "propertyName": "workflowName",
                        "title": "Workflow Name",
                    },
                    {
                        "propertyName": "preferredName",
                        "title": "Your Company Preferred Name",
                    },
                    {
                        "propertyName": "active",
                        "title": "Active",
                        component: "adk-workflow-select-row",
                        editable: false
                    },
                    {
                        title: "Edit",
                        component: "edit-row",
                        editable: false
                    }],
                rows: [
                    {
                        step: '0',
                        workflowName: 'New',
                        preferredName: '新',
                    },
                    {
                        step: '1',
                        workflowName: 'Budget Approval',
                        preferredName: '预算批准',
                    },
                    {
                        step: '2',
                        workflowName: 'Creative',
                        preferredName: '创作的',
                    },
                    {
                        step: '3',
                        workflowName: 'Visualize',
                        preferredName: '想象',
                    },
                    {
                        step: '4',
                        workflowName: 'Implementation',
                        preferredName: '履行',
                    },
                    {
                        step: '5',
                        workflowName: 'In Play',
                        preferredName: '活性',
                    },
                    {
                        step: '6',
                        workflowName: 'Completed',
                        preferredName: '已完成',
                    },
                    {
                        step: '7',
                        workflowName: 'Canceled',
                        preferredName: '取消',
                    },
                ]
            },

这是adk-workflow-select-row,它是复选框组件。下面的代码是我如何呈现复选框的。这将启用所有的复选框。但我只需要步骤2,3和4的复选框被启用。

{{#paper-checkbox value=isSelected onChange=(action "clickOnRow" index record)}}{{/paper-checkbox}}
eanckbw9

eanckbw91#

你的问题有点难以回答,因为你没有显示相关的模板代码。
一般来说,你在模板中把你的复选框称为你的复选框,你可以把它 Package 在一个{{#if中。你的代码非常通用,但我猜它可能在你的edit-row组件中。所以像这样:

{{#if some condition}}
  {{#paper-checkbox value=isSelected onChange=(action "clickOnRow" index record)}}{{/paper-checkbox}}
{{/if}}

现在重要的问题是使用什么条件,这取决于你到底想要什么,你想怎么配置它?你想用一个全局数组来告诉你在rows中哪些步骤有复选框吗?

{
  step: '2',
  workflowName: 'Creative',
  preferredName: '创作的',
  showCheckbox: true,
},

根据这一点,您需要的可能是这样的:

{{#if record.showCheckbox}}
  {{#paper-checkbox value=isSelected onChange=(action "clickOnRow" index record)}}{{/paper-checkbox}}
{{/if}}

一般来说,如果您是Ember新手,我强烈建议您首先尝试学习在不太通用的情况下事情是如何工作的。像您这样的通用解决方案可能非常棒,但很快就会变得非常复杂。

相关问题