0

当网站运行时,我只看到标题,而不是#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 是我的问题,它背叛了我。删除它修复了它。

4

1 回答 1

0

您需要路由更改侦听器的任何原因?有可能它永远不会开火..试试这个?

module.controller("ListController", function ($rootScope, $scope, $routeParams, ListService) {
    ListService.getLists().then(function(data){
        $scope.lists = data;
    });
});
于 2014-03-29T00:33:53.657 回答