我創建了一個包含currentValue屬性的自定義控件。我在元數據中定義它,如下:爲什麼不按預期再次渲染我的視圖?
properties:
{
currentValue:
{
type: 'int',
defaultValue: 0
},...
在我Main.controller.js我打電話,我創建並改變它的CurrentValue的屬性如下自定義控件。
var oCustomControl = this.getView().byId("customID1");
oCustomControl.setCurrentValue(75);
在這一步在我的control.js中,我沒有創建一個setCurrentValue函數。因爲我知道UI5自己創建它。但是我的控件的currentValue屬性無法更新。所以我認爲我的控制不能被重新渲染。所以我改寫了CurrentValue的setter和如下更改:
setCurrentValue : function(iCurrentValue)
{
this.setProperty("currentValue", iCurrentValue);
},
但我仍看不出這是我在我的觀點改變了值。
這裏是我的渲染器:
renderer :
{
render : function(oRm, oControl) {
var layout = oControl.createGauges();//I created layout
oRm.write("<div");
oRm.writeControlData(layout);
oRm.writeClasses();
oRm.write(">");
oRm.renderControl(layout);
oRm.addClass('verticalAlignment');
oRm.write("</div>");
}
},
我現在想,也許這是因爲我的渲染布局控制?
和我的其他屬性與d3.js有關。我在我的onAfterRendering函數中編寫了d3.js代碼。
你可以發佈全新的自定義控制器嗎? –
我添加了我的渲染器功能併爲您更新了我的問題。我的其他代碼是d3.js,我在下面的鏈接中分享了我的問題 – melomg
@melong:你繼承了一些控制嗎?或從頭開始寫作? –