我的后端是在Silex中开发的,我可以使用localhost完全访问各种路由:8080 / project / api / index.php / user(路由示例)。
如果我使用角度1.5.8在js文件中编写http get(我只使用一个名为mainController的控制器),那么当我输入angularsite / user时,我怎么能这样做
(用户是路线," / user"),它返回数据然后在我的index.html上显示?
答案 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>