当网站运行时,我只看到标题,而不是#outerBox div(包含我的 ng-repeat)我看到
<!-- ngRepeat: list in $parent.lists -->
这是我的代码
var module = angular.module('app', ['ngRoute']);
module.config(function($routeProvider) {
$routeProvider
.when('/:num',
{
templateUrl: "list.html",
controller: "ListController"
}).otherwise({redirectTo: '/'});
});
module.service('ListService', function ($http, $routeParams) {
this.getLists = function () {
return $http.get("testmysql.php", {params : {num : $routeParams.num}})
.then(function(results){
//Success;
console.log(results.data);
return results.data;
}, function(results){
//error
console.log("Error: " + results.data + "; "
+ results.status);
return results.data;
});
}
});
module.controller("ListController", function ($rootScope, $scope, $routeParams, ListService) {
$rootScope.$on('$routeChangeSuccess', function(event, current, previous){
ListService.getLists().then(function(data){
$scope.lists = data;
});
});
});
index.html 的主体...
<body ng-app="app">
<div ng-view></div>
</body>
和list.html
<div id="container">
<h1 id="websiteTitle">Website</h1>
<h2 id="slogan">The only site you'll ever need</h2>
<!-- View below contains unique id from URL -->
<div class="outerBox" ng-repeat="list in lists">
<div class="innerBox">
<h1 class="listTitle">{{list[0].listname}}</h1>
<div class="website" ng-repeat="site in list">
<span class="index">{{$index + 1}}</span><a href = {{site.url}}><img src= "http://www.google.com/s2/favicons?domain={{site.url}}">{{site.name}}</a>
</div>
</div>
</div>
</div>
我不知道为什么我无法访问范围。我在我的控制器中尝试了 $rootscope.test = "test" 。然后当我做 {{test}} 它确实在 list.html 中工作。但是 ng-repeat 没有运气。
另请注意,如果我有一个 "" 模板并将我的 list.html HTML 放入索引文件的正文中,一切都可以正常工作,但我不希望这样,因为我需要 2 个视图。
已解决:$rootScope.$on 是我的问题,它背叛了我。删除它修复了它。