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 個項目時(工具欄按鈕),第二個在開始添加項目時(操作按鈕)。
添加回答
舉報