好吧,我正在尝试创建一个简单的plunkr,用于与使用ng-view的SPA加载时间相关的问题,似乎我无法设法创建有效的场景。ng-view按预期工作
我想要的是一个带有ng-view和2个模板的SPA,因此每个模板都显示一些基本数据并可以导航到另一个模板。
这里是plunkr,这是温泉
<!DOCTYPE html>
<html>
<head>
<script data-require="[email protected]" data-semver="1.4.8" src="https://code.angularjs.org/1.4.8/angular.js"></script>
<script data-require="[email protected]" data-semver="1.4.8" src="https://code.angularjs.org/1.4.8/angular-route.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body>
<div ng-app="app">
<div ng-view=""></div>
</div>
</body>
</html>
的代码,这里是我想象这不是工作的JS
angular
.module('app', ['ngRoute'])
.controller('ScreenController', ScreenController)
.config(['$routeProvider', routeProvider])
ScreenController.$inject = [ '$scope' ];
// initial navigation
function routeProvider($routeProvider) {
$routeProvider.
when('/screen1.html', {
templateUrl: './screen1.html',
controller: ScreenController
}).
when('/screen2.html', {
templateUrl: './screen2.html',
controller: ScreenController
}).
otherwise({
url: '/screen1.html',
templateUrl: './screen1.html',
controller: ScreenController
});
}
function ScreenController($scope) {
$scope.data1 = [];
$scope.data2 = [];
$scope.ready = false;
$scope.numElements = function(scr) {
var length = scr === '1' ? $scope.data1.length : $scope.data2.length;
return 'Data has ' + length + ' elements';
}
function init() {
console.info('ScreenController.init');
$scope.data1 = [
{ a:'a1', b: 'b1' },
{ a:'a2', b: 'b2' },
{ a:'a3', b: 'b3' },
{ a:'a4', b: 'b4' },
{ a:'a5', b: 'b5' },
{ a:'a6', b: 'b6' },
{ a:'a7', b: 'b7' },
{ a:'a8', b: 'b8' }
];
$scope.data2 = [
{ a:'a1', b: 'b1', c:'c1', d:'d1' },
{ a:'a2', b: 'b2', c:'c2', d:'d2' },
{ a:'a3', b: 'b3', c:'c3', d:'d3' },
{ a:'a4', b: 'b4', c:'c4', d:'d4' }
];
console.info('data1: ' + JSON.stringify($scope.data1));
console.info('data2: ' + JSON.stringify($scope.data2));
$scope.ready = true;
}
init();
}
。
第一次加载时,页面似乎工作正常,因为它显示模板screen1.html和数据。但是一旦我开始点击链接,它就不再起作用了,控制器不会被访问,数据也不会显示。任何想法为什么?
非常感谢!
这个例子有很多问题。请更具体一些,特别是您期望发生的事情,因为这不是代码评论网站。例子可能是,为什么列表不在第1页上显示,或者当您从第2页返回时,为什么不是页面1工作? –
你是对的@AndréLaszlo,对不起;我编辑了这篇文章,因为我的问题与链接没有像预期一样工作。 – David
numElements()函数需要一些参数scr – shreyansh