第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

AlpacaJS:動態(tài)表行中的可觀察引用字段

AlpacaJS:動態(tài)表行中的可觀察引用字段

有只小跳蛙 2022-08-04 10:11:35
我有一個表格元素,人們可以在其中添加行來添加數(shù)據(jù)。其中兩個字段是互斥的:如果在一個字段中輸入值,則應禁用另一個字段,反之亦然。我的理解是,我需要使用可觀察量在回調(diào)中執(zhí)行此操作,但我似乎找不到正確的路徑或ID字符串。從邏輯上講,它是如何工作的沒有多大意義。該表開始時為空。postRender那么,是否有對“添加行”按鈕的回調(diào)或我需要添加此邏輯的內(nèi)容?任何指導將不勝感激。圖式:    var schema = {        "type": "object",        "properties": {            "cbnum": {                "type": "string",                "required": true,                "minLength": 5,                "maxLength": 5            },            "projects": {                "type": "array",                "items": {                    "type": "object",                    "properties": {                        "name": {                            "type": "string",                            "title": "Project name (required)",                            "required": true                        },                        "tags": {                            "type": "string",                            "title": "Tags"                        },                        "hours": {                            "type": "number",                            "title": "Hours"                        },                        "percent": {                            "type": "number",                            "title": "Percent"                        }                    }                }            }        }    };下面的代碼不起作用(再次,當你想到它時,這并不奇怪,但我不知道還能嘗試什么):    var postRenderCallback = function(control) {        var hours = control.childrenByPropertyId["projects"].childrenByPropertyId["hours"];        var percent = control.childrenByPropertyId["projects"].childrenByPropertyId["percent"];        hours.on("change", function() {            if (this.getValue().length > 0) {                percent.setValue("");                percent.options.disabled = true;            } else {                percent.options.disabled = false;            }        });    };
查看完整描述

1 回答

?
眼眸繁星

TA貢獻1873條經(jīng)驗 獲得超9個贊

你的模式是正確的,你正在考慮的也是正確的,使用總是有幫助,但在這種情況下不要太多,因為你有喜歡嵌套的字段/對象(數(shù)組>項>項1>小時)這就是為什么你的代碼不起作用,因為你不能將更改函數(shù)分配給所有創(chuàng)建項的所有小時!加上你正在使用一個數(shù)字(參見你的模式配置),這將永遠不會起作用,你應該使用或正在字段上。postRendergetValue().lengthtoStringisNaNnumber


因此,要實現(xiàn)您正在尋找的內(nèi)容,您應該創(chuàng)建一個并將其分配給羊駝選項字段。在此配置中,您應該使用“百分比”和“小時數(shù)”字段,并為每個字段輸入您在 postRender 上已經(jīng)執(zhí)行的相同代碼。options configchange event


下面是一個示例:


"hours": {

   "events": {

       "change": function() {

            var percent = this.parent.childrenByPropertyId["percent"];

            var hoursValue = this.getValue();

            if (typeof hoursValue != 'undefined' && !isNaN(hoursValue)) {

              percent.options.disabled = true;

            } else {

              percent.options.disabled = false;

            }

            percent.refresh();

        }

    }

}

您已經(jīng)有一個全局控件變量,可用于獲取字段控件對象,但這里我們在子控件上,因此我們可以使用父控件執(zhí)行此操作,如下所示:postRender


var percent = this.parent.childrenByPropertyId["percent"];

在小時數(shù)或百分比字段中設(shè)置任何選項后,您應該調(diào)用函數(shù)來告訴羊駝您更新了某些配置,并使用更新的配置為我們重新呈現(xiàn)該字段。refresh()


percent.refresh();

這是此解決方案的工作小提琴。


為了回答您關(guān)于“添加行”按鈕的問題,是的,有一個回調(diào),但我認為它不會對您有所幫助,我嘗試了,使用數(shù)組類型字段,您有2個不同的添加按鈕,所以對我來說這不是一個好的解決方案,因為您應該為兩個按鈕實現(xiàn)代碼!第一個在有 0 個項目時(工具欄按鈕),第二個在開始添加項目時(操作按鈕)。


查看完整回答
反對 回復 2022-08-04
  • 1 回答
  • 0 關(guān)注
  • 87 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號