1

Я работаю над изучением среднего стека, и я сработал с Угловым и маршрутизирующим. У меня есть javascript-файл, указанный ниже, который содержит код маршрутизации в модуле app.config.Проблемы с угловым состоянием и разрешением

var app = angular.module('doorSensorReadings', ['ui.router']); 
 

 
app.factory('readings', ['$http', function($http){ 
 
    var o = { 
 
    readings: [] 
 
    }; 
 
    
 
    o.getAll = function() { 
 
\t \t alert("test"); 
 
\t }; 
 
}]) 
 

 
app.controller('MainCtrl', ['$scope', 'readings', function($scope, readings){ 
 
    $scope.readings = readings.readings; 
 
    
 
    $scope.addReading = function(){ 
 
    $scope.readings.push({id: 2, name:"Door 4", open: true}) 
 
    } 
 
    
 
}]); 
 

 
app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) { 
 
    $stateProvider 
 
    .state('home', { 
 
     url: '/home', 
 
     templateUrl: '/home.html', 
 
     controller: 'MainCtrl', 
 
     resolve: { 
 
     Promise: ['readings', function(readings){ 
 
      return readings.getAll(); 
 
     }] 
 
     } 
 
    }); 
 

 
    $urlRouterProvider.otherwise('home'); 
 
}]);

При загрузке страницы я бы ожидать, что это огонь код в app.factory и отправить уведомление окно, сообщающее тест. Я не могу понять, почему код не вызывается, и я не получаю никаких ошибок при загрузке страницы. Сейчас он просто загружает пустую страницу. Файл «EJS» приведена ниже:

<html> 
 

 
<head> 
 
    <title>My Angular App!</title> 
 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.10/angular.min.js"></script> 
 
    <script src="http://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.10/angular-ui-router.js"></script> 
 
    <script src="javascripts/angularApp.js"></script> 
 
</head> 
 

 
<body ng-app="doorSensorReadings"> 
 
    
 
    <div class="row"> 
 
    <div class="col-md-6 col-md-offset-3"> 
 
     <ui-view></ui-view> 
 
    </div> 
 
    </div> 
 

 

 
<script type="text/ng-template" id="/home.html"> 
 
    <div class="page-header"> 
 
    <h1>Door Sensor</h1> 
 
    
 
    <div ng-repeat="reading in readings"> 
 
     {{reading.id}}, {{reading.name}}, {{reading.open}} 
 
    </div> 
 

 
    <button ng-click="addReading()">Post</button> 
 
    </div> 
 
</script> 
 

 
</body> 
 

 
</html>

Любые предложения относительно того, почему предупреждение не срабатывает, когда страница загружена будет весьма признателен.

ответ

1

Вы должны вернуть o от factory, так как завод возвращает объект.

app.factory('readings', ['$http', function($http){ 
    var o = { 
    readings: [] 
    }; 

    o.getAll = function() { 
    alert("test"); 
    }; 
    return o; 
}]) 
+0

Так просто, спасибо. – Chris

+0

@Chris Рад помочь вам .. Спасибо :) –

Смежные вопросы