这是在iFrame中运行的页面。 HTML片段:
<div ng-app='APallet'>
<div ng-view></div>
</div>
代码:
var aPalletServices = angular.module('APallet',['ngRoute']);
function palletRouteConfig($routeProvider){
$routeProvider
.when('/', {
controller: PalletListCtrl,
templateUrl: '/closeAndUplift_palletList.html'
})
.when('/add', {
controller: PalletEditCtrl,
templateUrl: '/closeAndUplift_palletEdit.html'
})
.otherwise({redirectTo: '/'});
}
aPalletServices.config(palletRouteConfig);
function PalletListCtrl($scope, $location){
$scope.addPallet = function(){
$location.path('/add');
};
}
function PalletEditCtrl($scope, $location, $routeParams){
}
一开始,closeAndUplift_palletList.html页面在ng-view中正确显示。它有一个添加托盘按钮。当通过PalletListCtrl调用addPallet()时,将从服务器检索closeAndUplift_palletEdit.html页面(由Chrome调试器验证),但它不会显示在ng-view中。 PalletEditCtrl也不会执行。
编辑: 问题似乎是在处理请求后页面实际上正在重新加载。
我觉得这与页面加载到iframe这一事实有关。另一个因素可能是在URL中传递了令牌。
我尝试使用过标签,但没有帮助。
为了完整起见,这里是“/”(closeAndUplift_palletList.html)
<a class="round button" ng-click="addPallet()" href="#">Add</a>
<table>
<thead>
<th>Pallet id</th>
</thead>
<tr ng-repeat='pallet in pallets'>
<td>{{pallet.palletId}}</td>
</tr>
</table>
答案 0 :(得分:0)
尝试这种方法:
...
.when('/add', {
controller: 'PalletEditCtrl', //this should be a string
templateUrl: '/closeAndUplift_palletEdit.html'
})
...
并按如下方式声明控制器:
var Controllers = angular.module('Controllers', []);
Controllers.controller('PalletEditCtrl', ['$scope', '$location', '$routeParams'
function ($scope, $location, $routeParams) {
//conlroller code here
}]);