我正在将一些Angular和ui-router集成到我的初创公司网站中,我遇到了一个让ui-router和ui-view工作的问题。这会让人想知道/
的url属性中.state
指向的是什么。它是指向Angular应用程序的声明位置还是其他位置?基本上我会感谢任何有关如何解决我的问题的反馈。 (请参阅下面的“应用程序模块”代码中的“职业”状态以查看我所指的内容)
As you can see here, it's not currently working.
应用模块
var careersApp = angular.module("ultradiaCareers", ["ui.router", "services"]);
careersApp.config(function($stateProvider, $locationProvider){
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
$stateProvider
.state('careers', {
url: "/",
templateUrl: "openings.html",
controller: "CareersController"
})
.state('positions', {
url: "/position/:id",
templateUrl: "position.html",
controller: "PositionsController"
});
});
控制器
angular.module("ultradiaCareers")
.controller('CareersController', ["$scope", "GetOpenings", function ($scope, GetOpenings) {
"use strict";
GetOpenings.openings.then(function (positions) {
$scope.openings = positions.data;
});
}])
.controller('PositionsController', ["$scope", "$http", "$stateParams", "GetOpenings", function ($scope, $http, $stateParams, GetOpenings) {
"use strict";
GetOpenings.openings.then(function (positions) {
$scope.openings = positions.data;
$scope.positon = positions.data[GetOpenings.getPositionById($scope.openings, $stateParams.id)];
});
}]);
索引HTML
<html>
<head></head>
<body ng-app="ultradiaCareers">
<div ui-view></div>
</body>
</html>
JSON服务
var careersServices = angular.module("services", [])
.factory("GetOpenings", ["$http", function ($http) {
"use strict";
var GetOpenings = this, i;
GetOpenings.openings = $http.get("/careers/positions.json");
return {
openings: GetOpenings.openings,
getPositionById: function (data, value) {
for (i = 0; i < data.length; i++) {
if (data[i].pid == value) {
return i;
}
}
}
};
}]);