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

问题描述 投票:0回答:1

**enter image description here**我是否可以禁用步骤2、3和4之外的复选框的其余部分?这些复选框是复选框组件的链接。然后,我将复选框组件链接到route的列propertyName:“ active”处。以下是路线代码的一部分。

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}}
ember.js ember-paper
1个回答
0
投票

您的问题很难回答,因为您没有显示相关的模板代码。

[通常,您会以某种方式在模板中调用您的复选框,您可以将其包装在{{#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}}

通常,如果您是初学者,我可以强烈建议您首先尝试了解事情在不太普通的情况下如何工作。像您这样的通用解决方案可能很棒,但很快就会变得非常复杂。

© www.soinside.com 2019 - 2024. All rights reserved.