2016-07-22 16 views
0

Ich versuche, ein Widget zum Hygieia Projekt auf Github hinzuzufügen. Als ich das Widget auf der Seite hinzufügen, wird es nicht angezeigt, und ich diesen Fehler:Ich kann keine Ansicht von undefined in eckigen js finden, Modul ist definiert

TypeError: Cannot read property 'view' of undefined 
    at link (http://localhost:3000/app/dashboard/directives/widget.js:49:64) 
    at http://localhost:3000/bower_components/bower.js:9682:44 
    at invokeLinkFn (http://localhost:3000/bower_components/bower.js:9688:9) 
    at nodeLinkFn (http://localhost:3000/bower_components/bower.js:9198:11) 
    at delayedNodeLinkFn (http://localhost:3000/bower_components/bower.js:9446:11) 
    at compositeLinkFn (http://localhost:3000/bower_components/bower.js:8547:13) 
    at compositeLinkFn (http://localhost:3000/bower_components/bower.js:8550:13) 
    at compositeLinkFn (http://localhost:3000/bower_components/bower.js:8550:13) 
    at compositeLinkFn (http://localhost:3000/bower_components/bower.js:8550:13) 
    at compositeLinkFn (http://localhost:3000/bower_components/bower.js:8550:13) <widget name="aws-status" class="ng-isolate-scope"> 

ich den gesamten Code modelliert habe ich nach dem Code hinzugefügt haben, die bereits für ähnliche Module vorhanden ist, aber aus irgendeinem Grund Das Widget wird nicht auf der Seite angezeigt. Hier ist, wo ich das Modul ich erklären, lassen Sie mich wissen, wenn Sie andere Codeabschnitte sehen müssen, um zu bestimmen, was ich tue, falsch:

(function() { 
    'use strict'; 

    var widget_state, 
     config = { 
      view: { 
       defaults: { 
        title: 'AWS Status' // widget title 
       }, 
       controller: 'awsStatusViewController', 
       controllerAs: 'ctrl', 
       templateUrl: 'components/widgets/awsstatus/view.html' 
      }, 
      config: { 
       controller: 'awsStatusConfigController', 
       controllerAs: 'ctrl', 
       templateUrl: 'components/widgets/awsstatus/config.html' 
      }, 
      getState: getState 
     }; 

    angular 
     .module(HygieiaConfig.module) 
     .config(register); 

    register.$inject = ['widgetManagerProvider', 'WidgetState']; 
    function register(widgetManagerProvider, WidgetState) { 
     widget_state = WidgetState; 
     widgetManagerProvider.register('aws-status', config); 
    } 

    function getState(widgetConfig) { 
     return HygieiaConfig.local ? 
      widget_state.READY : 
      (widgetConfig.id ? widget_state.READY : widget_state.CONFIGURE); 
    } 
}); 

Antwort

0

ich entdeckt habe ich fehlte 2 Klammern am Ende meine Datei. Ohne diese scheint der Code nie ausgeführt zu werden.

Der richtige Code sah wie folgt aus:

(function() { 
    'use strict'; 

    var widget_state, 
     config = { 
      view: { 
       defaults: { 
        title: 'AWS Status' // widget title 
       }, 
       controller: 'awsStatusViewController', 
       controllerAs: 'ctrl', 
       templateUrl: 'components/widgets/awsstatus/view.html' 
      }, 
      config: { 
       controller: 'awsStatusConfigController', 
       controllerAs: 'ctrl', 
       templateUrl: 'components/widgets/awsstatus/config.html' 
      }, 
      getState: getState 
     }; 

    angular 
     .module(HygieiaConfig.module) 
     .config(register); 

    register.$inject = ['widgetManagerProvider', 'WidgetState']; 
    function register(widgetManagerProvider, WidgetState) { 
     widget_state = WidgetState; 
     widgetManagerProvider.register('aws-status', config); 
    } 

    function getState(widgetConfig) { 
     return HygieiaConfig.local ? 
      widget_state.READY : 
      (widgetConfig.id ? widget_state.READY : widget_state.CONFIGURE); 
    } 
})();