SAP UI5: привязка данных к таблице с использованием sap.m - PullRequest
0 голосов
/ 12 марта 2019

Я хочу отобразить простую таблицу, используя представления XML.У меня есть модель, которая загружает данные из файла JSON.Я использую классы 'sap.ui.table' и 'sap.m'.Проблема в том, что я не могу получить данные на представление.Я думаю, что чего-то не хватает с привязкой или загрузкой библиотек или, может быть, в коде начальной загрузки.

Примечание. Найдите привязку в представлении:

Ниже приведены фрагменты кода:

1) Data.json

{
"empstr":

           {
		"eId": 100,
		"eName": "Prathamesh",
		"eSalary": 2400,
		"currency": "INR"
	},


	"empTab": [{
			"eId": 100,
			"eName": "Prathamesh",
			"eSalary": 2400,
			"currency": "INR"


		}, {
			"eId": 200,
			"eName": "Prateek",
			"eSalary": 2500,
			"currency": "USD"
		}, {
			"eId": 300,
			"eName": "Simar",
			"eSalary": 1200,
			"currency": "INR"
		}, {
			"eId": 400,
			"eName": "Sahil",
			"eSalary": 1350,
			"currency": "EUR"
		}, {
			"eId": 500,
			"eName": "Sakshi",
			"eSalary": 500,
			"currency": "USD"
		}, {
			"eId": 600,
			"eName": "Soumya",
			"eSalary": 12000,
			"currency": "INR"
		}, {
			"eId": 700,
			"eName": "Laxman",
			"eSalary": 240000,
			"currency": "INR"
		}


	]


}

2) Main.view.xml

<mvc:View xmlns:core="sap.ui.core" 
		  xmlns:mvc="sap.ui.core.mvc" 
		  xmlns="sap.m" 
		  xmlns:table="sap.ui.table"
		  controllerName="akhil.controller.Main"
	      xmlns:html="http://www.w3.org/1999/xhtml">
	
	 <table:Table id="myTab1"
	              selectionMode= "None" 
	              rows="{/empTab}">
      <table:title>
      	<Text text="Table header"></Text>
      </table:title>
            <table:columns>
            	
              <table:Column>
                <table:label>
                	<Label text = "Emp Id"></Label>	
                </table:label> 
                <table:template>
                	<Text text="{eId}"></Text>
                </table:template>
              </table:Column>
              
              
              <table:Column>
                <table:label>
                	<Label text = "Emp Name"></Label>	
                </table:label> 
                <table:template>
                	<Text text="{eName}"></Text>
                </table:template>
              </table:Column>
              
              
              <table:Column>
                <table:label>
                	<Label text = "Emp Salary"></Label>	
                </table:label> 
                <table:template>
                	<Text text="{eSalary}"></Text>
                </table:template>
              </table:Column>
              
              
              <table:Column>
                <table:label>
                	<Label text = "Currency"></Label>	
                </table:label> 
                <table:template>
                	<Text text="{/empTab/currency}"></Text>
                </table:template>
              </table:Column>
            </table:columns>   
          </table:Table>

</mvc:View>

3) Main.controller.js

sap.ui.define([
	"sap/ui/core/mvc/Controller"
], function (Controller) {
	"use strict";


	return Controller.extend("akhil.controller.Main", {

		onInit: function () {
			
			var oModel = new sap.ui.model.json.JSONModel();
			oModel.loadData("/ExerciseBinding/Data.json");
			this.getView().setModel(oModel);
			
		}

	});


});

4) myhtml.html

<!DOCTYPE html>
<html>
	<head>
		<script id="sap-ui-bootstrap"		
		       	src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js"
				data-sap-ui-libs="sap.m, sap.ui.table"
				data-sap-ui-theme="sap_bluecrystal"
				data-sap-ui-bindingsyntax="complex"
				data-sap-ui-resourceroots='{
					"akhil": "./"
					}'
					>
					
		</script>	
	
		<script>
			var oView = new sap.ui.view({
				id:"idMain3",
				viewName:"akhil.view.Main",
				type: "XML"
			});

			oView.placeAt("XMLcontent"); 
		</script>
</head>
	
	<body class="sapUiBody">          
		<div id="XMLcontent"> 
		</div>
		</body>
</html>

5) Ошибка, показанная на рисунке ниже.

Error

Я что-то упустил, но не могу точно выяснитькакие.Я ценю ваши отзывы.Данные не заполняются в представлении.

1 Ответ

1 голос
/ 12 марта 2019

Ваше приложение не может найти файл данных вашей модели - откуда 404. Ваша строка кода ниже заставит ваше приложение ui5 искать в корне веб-сервера, с которого вы работаете:

oModel.loadData("/ExerciseBinding/Data.json");

Напримервышеприведенное будет выглядеть, скажем, http://<yourserverbaseurl>/ExerciseBinding/Data.json Вряд ли вы там, где вы разместили приложение и сам файл json.

Проверьте вкладку сети в инструментах разработчика Chrome, чтобы увидеть, где на самом деле находится ваше приложение.смотря, где они на самом деле находятся на вашем веб-сервере.

...