2016-12-01 30 views
0

私はこのコードを持っている:SAPUI5:モデルからバインドされたプロパティからBindPropertyを取得する方法は?

//create table 
tableContent=getcontent(); 

    var oTable2 = new sap.ui.table.Table(tableId, { 
     width : "100%", 
     visibleRowCount: tableContent.length, 
     selectionMode : sap.ui.table.SelectionMode.None, 
     resizable : false, 
     flexible : false 
    }); 

    var img = new sap.m.Image({ 
      press: function() {console.log(img.getProperty("src")) 
     }}); 

    img.bindProperty("src", "src"); 

    oTable2.addColumn(new sap.ui.table.Column({ 
      label: new sap.ui.commons.Label({ text: "" }), 
      template: img, 
      autoResizable: false, 
      width : '10%' 
     })); 
    var oModel2 = new sap.ui.model.json.JSONModel(); 
    oModel2.setData({ modelData: tableContent }); 
    oTable2.setModel(oModel2); 
    oTable2.bindRows("/modelData"); 
    oTable2.sort(oTable2.getColumns()[0]); 
    oTable2.placeAt(containingDivId); 

問題は、私はimgソースを印刷する必要があり、コンストラクタでプロパティを定義していますということです。

var img = new sap.m.Image({ 
      press: function() {console.log(img.getProperty("src")) 
     }}); 

しかし、私はこのようにそれを取るしようとしています:

img.bindProperty("src", "src"); 

空白のテキスト(何も表示されません)。

この境界値はどのようにして取得できますか?その他の機能?

2番目の質問:カスタムプロパティを追加するにはimg?私はimg:src、alt、およびmyCustomTxtを使用しません。プロパティmyCustomTxtを追加するにはどうすればよいですか?

更新:

私が試した:

var img = new sap.m.Image({ 
     "src" : "assets/images/btn-X.png", 
     "press" : function(event) { 
      var binding = event.getSource().getBindingInfo("src").binding; 

       console.log(binding.getValue()); 

     } 
    }); 

が、画像を押したとき、私はこのエラーを取得しています:

cart-module.js:151 Uncaught TypeError: Cannot read property 'binding' of undefined(…) 

感謝を!

+0

JSONモデルを投稿できますか? –

+0

はい、1つ前の質問:どのようにイベントをバインドできますか?イベントsapui5要素のpressイベントをバインドしたいとします。イベントであるため、bindProperty()でそれを行うことはできません。このプロパティをイベントと結びつける方法はありますか? – Matoy

+2

私を許しますが、それは非常に基本的な質問です。あなたがそれらを見たことがないなら、https://openui5.hana.ondemand.com/#docs/guide/8b49fc198bf04b2d9800fc37fecbb218.htmlでチュートリアルを見に行くことができますか?あなたはそれらを非常に便利に見つけることができ、質問に答えますあなたがまだ来ていない質問を含むモデル、バインディング、イベント、ビューについて –

答えて

2

モデルの各レコードに「src」というプロパティがあるとします。次のようにあなたはそれをバインドすることができます。

new sap.m.Image({ 
    "path" : "{src}", 
    "press" : function(event) { 
     var binding = event.getSource().getBindingInfo("src").binding; 
     if (binding) { 
      jQuery.sap.log.debug(binding.getValue()); 
     } 
    } 
}); 

をカスタムは、あなたが期待しsap.ui.core.CustomDataのインスタンスメソッドaddCustomDataを使用することができます属性を追加するには。

img.addCustomData(new sap.ui.core.CustomData({ "key" : myCustomTxt, "value" : "myCustomText" }); 
+0

更新私の答え – Matoy

+0

私は最初のimgを押すとurl1に行きたい、2番目のimgを押すとurl2に行く.. – Matoy

+0

私は各レコードのインデックスパラメタを持っている..私はちょうど新しいsap.m.Imageのようなものがほしい.bindProperty( "press"、 "callFunc(index)")、 – Matoy

関連する問題