私は新しいカスタムモジュールを定義しました:コントローラのフォーマッタが機能しないのはなぜですか?
ステータスアプリ/ formatter.js
sap.ui.define([], function() {
"use strict";
return {
stringToInt: function(value) {
console.log("Called: " + value);
return parseInt(value);
}
}
});
はその後、私のコントローラで私はウォークスルーのStep 23のように依存関係としてそれを定義し、コントローラとして追加プロパティ。
sap.ui.define([
"sap/ui/core/mvc/Controller",
"status-app/formatter"
], function (Controller, formatter) {
"use strict";
return Controller.extend("stibam-status.Main", {
//formatter: formatter,
formatter: {
stringToInt: function(value) {
console.log(value);
return "";
}
},
[...]
});
私はコードの両方の変形を試みましたが、フォーマッタは呼び出されませんでした。私はonInit関数のthis.formatter
で印刷しましたが、正しく設定されていました。ビュー自体に無名関数を使用する場合にのみ、私のビューが私のフォーマッタを呼び出さないのはなぜですか?
oColListItem.addCell((new sap.m.Text()).bindText({
path: "statusData>AnzPdf",
formatter: function(value) {
console.log(value);
return parseInt(value);
}
}));
ありがとう、ありがとうございますが、今は 'this.formatter'が定義されていないというエラーが表示されます。これは私の現在の要素(テキスト要素)でありコントローラーではないようです。 – Gerrit
'JSView.createContent()'の中にコードの2番目の例を追加しました。おそらくあなたはこれを保存しなければならないでしょうか? 'var that = this;/* ...コールバック関数のどこかで*/formatter:that.formatter.stringToInt' – schnoedel
まだ動作しない場合は、より多くのコードを投稿してください。 – schnoedel