I found the problem, forgot the function parantheses "()" in the end of the 
controller file

Den torsdag 2 april 2015 kl. 20:51:49 UTC+2 skrev Fredrik Carlsson:
>
> Hello
>
> First of all I am a complete beginner at both javascript and angular. 
> I have made the beginning of an app with everything working inside one 
> single .js file. 
> I found the angular styleguide (
> https://github.com/johnpapa/angular-styleguide) and thought i should 
> adapt this way of working, mainly because I have otherwise no idea of what 
> I am doing, but also to try to keep some kind of consistency troughout the 
> app. 
> And because I have no "own" style of doing things yet this could be a good 
> start to get a nice structure.
>
>
> I have now made 3 .js files and 1 html page. 
> One "main module" which is then the "setter" and one factory for getting 
> data form the backend and one controller. 
>
> When i try to render i get following error:
>
> Error: [ng:areq] Argument 'TempController' is not a function, got undefined
>
> http://errors.angularjs.org/1.3.15/ng/areq?p0=TempController&p1=not%20a%20function%2C%20got%20undefined
>     at REGEX_STRING_REGEXP (angular.js:63)
>     at assertArg (angular.js:1587)
>     at assertArgFn (angular.js:1597)
>     at angular.js:8470
>     at angular.js:7638
>     at forEach (angular.js:331)
>     at nodeLinkFn (angular.js:7625)
>     at compositeLinkFn (angular.js:7117)
>     at compositeLinkFn (angular.js:7120)
>     at compositeLinkFn (angular.js:7120)angular.js:11655 (anonymous 
> function)angular.js:8596 $getangular.js:14567 
> $get.Scope.$applyangular.js:1455 bootstrapApplyangular.js:4203 
> invokeangular.js:1453 doBootstrapangular.js:1473 bootstrapangular.js:1367 
> angularInitangular.js:26304 (anonymous function)jquery.js:3094 
> n.Callbacks.jjquery.js:3206 n.Callbacks.k.fireWithjquery.js:3412 
> n.extend.readyjquery.js:3428 I
>
> so something is obviously wrong with the controller and because of the 
> very few lines of code it would be an easy fix, but I have tried almost 
> everything now and still I can not get it to work. 
> Any ideas? Have been sitting with this for a couple of hours now, 
> googling, stack overflow searching etc etc without success
>
> *index.html:*
>
> <!doctype html>
> <html ng-app="app" ng-strict-di>
>
> <head>
>   <link rel="stylesheet" 
> href="bower_components/bootstrap/dist/css/bootstrap.min.css">
>
> </head>
>
>   <body>
>
>     <div class="panel panel-default" ng-controller="TempController as 
> tempcontroller">
>        <div class="panel-heading">Temperature sensors</div>
>
>         <table class="table table-striped">
>         <tr>
>             <th>#id</th>
>             <th>payload</th>
>             <th>timestamp</th>
>         </tr>
>         <tr ng-repeat="message in tempcontroller.messages | orderBy:'_id'">
>             <td>{{message._id}}</td>
>             <td>{{message.payload}}°C</td>
>             <td>{{message.timestamp | date:'HH:mm'}}</td>
>         </tr>
>        </table>
>
>     </div>
>     
>
>
>     <script src="bower_components/jquery/dist/jquery.min.js"></script>
>     <script src="bower_components/angular/angular.js"></script>
>     <script 
> src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
>     <script 
> src="bower_components/angular-websocket/angular-websocket.js"></script>
>
>     <script src="app/app.js"></script>
>
>     <script src="app/app.dataservice.js"></script>
>     <script src="app/app.tempcontroller.js"></script>
>
>   </body>
>
> </html>
>
>
> *app.js:*
>
> (function() {
>  'use strict';
>     angular
>         .module('app', [])
>
> })();
>
>
> *app.dataservice.js:*
>
> (function() {
>     'use strict';
>     angular
>         .module('app')
>         .factory('dataservice', dataservice);
>
>     dataservice.$inject = ['$http', '$websocket'];
>
>     function dataservice($http, $websocket) {
>         var ws = $websocket('ws://192.168.1.111:1880/admin/ws/nodedash/');
>         var nodesArray=[];
>
>         var service = {
>             getValues: getValues(),
>             status: status,
>             send: send
>         };
>
>         activate();
>
>         return service;
>
>         function activate() {
>             ws.onMessage(function(event) {
>
>                 console.log('message: ', event);
>                 var res;
>                 try {
>                     res = JSON.parse(event.data);
>                 } catch (e) {
>
>                     console.log=("Could not parse data from Websocket as 
> JSON");
>
>                 }
>
>                 var timestampObj = new Date(res.timestamp.replace(/-/g,"/"));
>                 res.timestamp = timestampObj;
>                 var found = false;
>
>                 for (var i = 0; i < nodesArray.length; i++) { //function to 
> avoid adding same payload to same node again
>                     if (nodesArray[i]._id === res._id) {
>
>                         nodesArray[i] = res;
>                         console.log("Updating value for _id: 
> "+nodesArray[i]._id);
>                         found=true;
>
>                     }
>                 }
>                 if (found==false) {
>                     nodesArray.push(res);
>                     console.log("Found new node (_id: " + res._id + "), 
> please configure node in setup");
>                 }
>
>
>
>
>
>             });
>
>             ws.onError(function(event) {
>                 console.log('connection Error', event);
>             });
>
>             ws.onClose(function(event) {
>                 console.log('connection closed', event);
>             });
>
>             ws.onOpen(function() {
>
>                 $http.get("http://localhost:1880/api/getnodes/";)
>                     .success(function(response) {
>                         for (var i=0;i<response.length;i++){
>                             nodesArray.push(response[i]);
>                             var timestampObj = new 
> Date(nodesArray[i].timestamp.replace(/-/g,"/"));
>                             nodesArray[i].timestamp = timestampObj;
>                         }
>                         console.log(nodesArray);
>                     });
>             });
>         }
>
>         function getValues() {
>                 return nodesArray;
>             }
>         function status() {
>                 return ws.readyState;
>             }
>
>         function send(message) {
>                 if (angular.isString(message)) {
>                     ws.send(message);
>                 } else if (angular.isObject(message)) {
>                     ws.send(JSON.stringify(message));
>                 }
>             }
>
>         }
>
> })();
>
>
> *app.tempcontroller:*
>
> (function() {
>     'use strict';
>     angular
>         .module('app')
>         .controller('TempController', TempController);
>
>     TempController.$inject = ['dataservice'];
>
>     function TempController(dataservice) {
>         var vm = this;
>         vm.messages = dataservice.getValues();
>
>     }
>
> });
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to