从js angular 1.5.8文件调用路由

时间:2016-10-28 08:20:59

标签: javascript angularjs routes

我的后端是在Silex中开发的,我可以使用localhost完全访问各种路由:8080 / project / api / index.php / user(路由示例)。

如果我使用角度1.5.8在js文件中编写http get(我只使用一个名为mainController的控制器),那么当我输入angularsite / user时,我怎么能这样做

(用户是路线," / user"),它返回数据然后在我的index.html上显示?

2 个答案:

答案 0 :(得分:0)

您需要将应用路由设置为mainController控制器。

angular.module('YourProject', [
    'YourModule',
    'ngRoute'
])

.config(['$routeProvider', function ($routeProvider) {

        $routeProvider.when('/user', {
            templateUrl: 'view.html',
            controllerAs: 'mainCtrl',
            controller: 'mainController '
        });

        $routeProvider.otherwise({
            redirectTo: '/user'
        });
}])

现在,当页面加载时,RouteProvider将找到user(默认路由)路由的默认路径,并将加载视图和控制器。 templateUrl包含模板的路径。

答案 1 :(得分:0)

如果您只想加载部分页面,可以执行以下操作..

'use strict';
 var App = angular.module('YourProject', ['ngRoute', 'AppControllers']);

App.config(['$routeProvider', function ($routeProvider) {
$routeProvider.
  when('/user', {
      templateUrl: 'user.html'
  }).
  otherwise({
      redirectTo: '/path'
  });
}]);

由于您的问题提到了API,如果您只是尝试加载某些数据,您可以从控制器中调用类似这样的用户API(前提是给出的URL是接受GET请求并使用JSON数据响应的API)。

var AppControllers = angular.module('AppControllers', []);

AppControllers.controller('MainController', ['$scope','$http', function ($scope,  $http) {

    //Declare a function to fetch user data from API
    $scope.user= function () {
        var req = {
            method: 'GET',
            url: baseURL + 'project/api/index.php/user'
        }
        return $http(req).success(function (data,status,header) {
           $scope.user = data;
        }).error(function () {
            console.log(error);
        });
    }

   //Call the get user function
    $scope.user();

}]);

最后在你的部分文件(user.html)中添加控制器以将其与上面声明的控制器绑定。

<!doctype html>
<html ng-app="YourProject">
<body>
<head>
  <title>User Page</title>
</head>
<div class="user-content" ng-controller="MainController">
</body>
</html>