无法从ng-view访问$ scope

时间:2014-03-29 00:21:16

标签: javascript angularjs scope ng-view

当网站运行时我只看到标题而不是#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 =&#34; test&#34;在我的控制器中。然后,当我{{test}}时,DID在list.html中工作。但是ng-repeat没有运气。

另请注意,如果我有&#34;&#34;的模板并将我的list.html HTML放入索引文件的正文中,一切正常,但我不想这样,因为我需要2个视图。

解决了:$ rootScope。$ on是我的问题,它背叛了我。修复它修好了。

1 个答案:

答案 0 :(得分:0)

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

module.controller("ListController", function ($rootScope, $scope, $routeParams, ListService) {
    ListService.getLists().then(function(data){
        $scope.lists = data;
    });
});