AngularJS JSON_CALLBACK无法使用ng-repeat

时间:2013-08-07 16:58:52

标签: angularjs ng-repeat ngresource

我正在尝试使用ng-repeat制作可点击式菜单。 我使用ngResource来调用休息服务器。 当我的菜单以纯html(ul / li)完成时,一切都运行良好但是当使用ng-repeat完成时,回调设置的数据不会在HTML视图中更新。

也许一个简单的例子会更清楚:

  • 简单按钮正常工作
  • html菜单正在运行
  • ng-重复对服务器的调用已完成,但没有任何反应
我错过了什么吗?

提前致谢

ps:我试图制作一个jsfiddle,但我无法让它工作......

html页面:

<!doctype html> <html>
<head>
    <script src="http://code.angularjs.org/1.0.7/angular.min.js"></script>
    <script src="http://code.angularjs.org/1.0.7/angular-resource.min.js"></script>
    <script src="js/date.js"></script>
</head>
<body>
<div ng-app="App">
    <div ng-controller="Controller">
        <h1>{{ date.time }}</h1>
        <h1>{{ date.milliseconds_since_epoch }}</h1>
        <hr>
        <button ng-click="fetchDate()">fetch</button>
        <hr>
        <div><ul><li><a>html menu</a>
                    <ul><li><button ng-click="fetchDate()">fetch</button></li></ul>
                </li>
            </ul>
        </div>
        <hr>
        <div><ul><li ng-repeat="menuItem in menu.menuItems"><a>{{menuItem.label}}</a>
                    <ul><li ng-repeat="subMenuItem in menuItem.subMenuItems">
                            <button ng-click="fetchDate()">fetch</button>
                        </li>
                    </ul>
                </li>
            </ul>
        </div>
    </div>
</div>
</body>
</html>

角度控制器(date.js):

angular.module('App', ['ngResource']);

Controller = function ($scope, $resource) {
    $scope.menu = {'menuItems': [
        {'label': 'menu1', 'subMenuItems': [
            {'label': 'sub1'}
            ,
            {'label': 'sub2'}
        ]
        }
        ,
        {'label': 'menu2', 'subMenuItems': [
            {'label': 'sub1'}
            ,
            {'label': 'sub2'}
        ]
        }
    ]
    };
    $scope.Date = $resource('http://date.jsontest.com/', {
        alt: 'jsonp',
        callback: 'JSON_CALLBACK'
    }, {
            get: {
                method: 'JSONP'
            }
        }
    );
    $scope.fetchDate = function () {
        this.date = this.Date.get();
    };
};

0 个答案:

没有答案