【发布时间】:2017-02-15 10:16:06
【问题描述】:
我正在通过 Pluralsight 培训计划学习 AngularJS。我还处于起步阶段,我正在构建简单的应用程序,用于在 github 上搜索用户并显示一些基本信息,例如用户名、头像和存储库列表。
下一步是让每个 repo 都可点击,并且用户可以看到有关特定 repo 的更多信息。我制作了路线、控制器和视图,但我不知道为什么它不起作用。我假设这条路线有问题,因为我无法获得所需的视图。
在这里你可以找到我的路线:
(function() {
var app = angular.module("githubViewer", ["ngRoute"]);
app.config(function($routeProvider) {
$routeProvider
.when("/main", {
templateUrl: "main.html",
controller: "MainController"
})
.when("/user/:username", {
templateUrl: "user.html",
controller:"UserController"
})
.when("/repos/:username/:reponame", {
templateUrl: "repo.html",
controller:"RepoController"
})
.otherwise({
redirectTo: "/main"
});
});
}());
回购控制器:
(function() {
var app = angular.module("githubViewer");
var RepoController = function($scope, github, $routeParams) {
var onRepos = function(data) {
$scope.repo = data;
};
var onError = function(reason) {
$scope.error = "Could retrieve data";
};
var username = $routeParams.username;
var reponame = $routeParams.reponame;
github.getRepoInfo(username, reponame).then(onRepos, onError);
};
app.controller("RepoController", RepoController);
}());
而 user.html 从 wich 视图中可以打开 repo 详细信息:
<tbody>
<tr ng-repeat="repo in repos | orderBy:repoSortOrder">
<td><a ng-href="#/repos/{{user.login}}/{{repo.name}}">{{repo.name}}</a></td>
<td>{{repo.stargazers_count | number}}</td>
<td>{{repo.language}}</td>
</tr>
</tbody>
您可以在这里找到整个项目: https://plnkr.co/edit/YpDofAJmrxn5IU7rGIjh
谢谢
【问题讨论】: