2017-01-31 4 views
0

У меня есть контроллер:Uncaught (обещанию): Ошибка Невозможно создать объект нового отсутствует

Menu.Controller.js:

sap.ui.define([ 
     "sapit/ext/utils/BaseController", 
     "sap/ui/model/json/JSONModel", 
     "sap/ui/model/Sorter", 
     "sap/ui/model/Filter", 
     "sapit/nova/model/constants", 
     "sapit/ nova /model/formatter", 
     "sapit/ nova /util/Helper", 
     "sapit/ nova /util/Validator", 
     "sapit/ nova /util/ItemService" 
    ], function(BaseController, JSONModel, Sorter, Filter, constants, formatter, Helper, Validator, ItemService) { 
     "use strict"; 

     return BaseController.extend("sapit.nova.controller.Menu", { 

      formatter: formatter, 
      helper: new Helper(), 
      itemService: new ItemService(), 


      onInit: function() { 
       this.fragmentProcess = sap.ui.xmlfragment("sapit.nova.view.fragment.Process", this); 
       // attach events 
       this.getRouter().attachRouteMatched(jQuery.proxy(this.onRouteMatched, this)); 
      }, 
      onRouteMatched: function(oEvent) { 
       var oPage = this.byId("menuProcessor"); 
       var sRouteName = oEvent.getParameter("name"); 

       if (sRouteName === "Menu") { 
        // show fragment 
        this.helper.clearFragment(oPage); 
        this.helper.showFragment(oPage, this.fragmentProcess); 
       } 

У меня есть соответствующее представление XML как Menu.view.xml :

mvc:View controllerName="sapit.nova.controller.Menu" xmlns="sap.m" xmlns:mvc="sap.ui.core.mvc"> 
    <Page id="menuProcessor" title="{i18n>menuPageTitle}" showNavButton="false"> 

    </Page> 
</mvc:View> 

Мой конфигурации маршрутизатора является:

"routes": [{ 
    "pattern": "/admin", 
    "name": "Main", 
    "target": ["menu"] 
    }, 

    "targets": { 
    "menu": { 
     "viewName": "Menu", 
     "viewLevel": 1, 
     "controlAggregation": "masterPages" 
    } 

Проблема заключается в том, что при запуске этого элемента управления приложения происходит onInit() в menu.controller, но он не будет включен в onRouteMatched, хотя он получает экземпляр маршрутизатора, подключенного к этому представлению.

Каждый раз, когда я запускаю это приложение, я получаю сообщение об ошибке после ввода onInit(), а остальная часть кода не работает, и просмотр не появляется.

Uncaught (in promise) Error: Cannot instantiate object: "new" is missing! 
    at constructor (sap-ui-core.js:640) 
    at constructor (sap-ui-core.js:1601) 
    at constructor (sap-ui-core.js:1571) 
    at f (sap-ui-core.js:638) 
    at f (sap-ui-core.js:284) 
    at p (sap-ui-core.js:285) 
    at _ (sap-ui-core.js:286) 
    at Object.properties (sap-ui-core.js:286) 
    at l (sap-ui-core.js:298) 
    at B.getText (sap-ui-core.js:296) 

Не могли бы вы предложить мне в этой связи.

Спасибо!

+0

вы указать вид корня в манифесте? –

ответ

0

Удалите пробелы из sap.ui.define это может быть проблемой при загрузке Helper, валидатор и ItemService

sap.ui.define([ 
     "sapit/ext/utils/BaseController", 
     "sap/ui/model/json/JSONModel", 
     "sap/ui/model/Sorter", 
     "sap/ui/model/Filter", 
     "sapit/nova/model/constants", 
     "sapit/ nova /model/formatter", 
     "sapit/ nova /util/Helper", 
     "sapit/ nova /util/Validator", 
     "sapit/ nova /util/ItemService" 
    ], 
0

Вы не создать экземпляр фрагмента.

Попробуйте это:

this.fragmentProcess = new sap.ui.xmlfragment("sapit.nova.view.fragment.Process", this); 
+0

'sap.ui.xmlfragment' является заводской функцией и поэтому не требует ключевого слова' new'. – boghyon