角度匹配的路线不显示

时间:2014-03-03 11:59:03

标签: javascript angularjs

这是在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>

1 个答案:

答案 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
}]);