2

SAP UI 5 でこの CRUDの例に従っています。SAPUI5 の仕組みを再現/理解しようとしています。

特に、このコードがどのように機能するかを理解しようとしています。

this.createButton = new sap.m.Button({
    icon : "sap-icon://add",
    visible : {
        path : "local>/inEdit",
        formatter : function(inEdit) { return !inEdit; }
    },
    press : [ oCon.createButtonPress, oCon ]
});

はビューcreateButton内で作成され、Home.view.jsこのモデル オブジェクトからパス値を取得し、onInit関数内でインスタンス化されHome.controller.jsます。

onInit : function(){
    var model = new sap.ui.model.json.JSONModel({
        mode : sap.m.ListMode.None,
        inEdit : false,
        inDelete : false,
        inBatch : false
    });
    this.getView().setModel(model, "local");
}

createButton私が理解していないのは、ボタンの作成中にこのコードがどのように機能するかです:

...
visible : {
    path : "local>/inEdit",
    formatter : function(inEdit) { return !inEdit; }
},
...

visible関数から返されるブール値を値として取りますが、formatterこれで問題ありません。私が実際に得ていないのは、2つのプロパティ( pathformatter )を持つオブジェクトが、pathの値を独自の inputp パラメータとして使用してformatterの関数を自動的に「実行」する方法です。

私が十分に明確であったことを願っています、前もって感謝します

4

3 に答える 3

0

トピックに関する深いフレームワークの知識がなくても、この背後にあると仮定する原則を説明することができます。

コントロール プロパティとモデル プロパティ間のバインディングを確立するたびに、これが発生します。この場合、コントロールは、バインドされたパスの下で変更をリッスンするモデルにイベント リスナーをアタッチ/inEditします。そのパスの下の値が変更されるたびに、イベントによってコントロール リスナーが実行されます。

  • 登録されたフォーマッタを新しい値で呼び出し、その戻り値をコントロール プロパティに設定します。
  • または - フォーマッタ/タイプなどが提供されていない場合 - 新しい値をコントロール プロパティに直接設定します

ほとんどの場合、プロパティの変更によりコントロールが再レンダリングされ、コントロールによって表示される新しいモデル値が表示されます。

誰かがよりよく知っているなら、私を修正してください。

于 2014-01-25T14:40:47.963 に答える