Angular 视图中的链接无效
Angular Links in view not working
我刚开始尝试 AngularJS 并且遇到了一个问题。
我的主页呈现一个 <ng-view>
元素,我设置了以下路由:
(function () {
var routes = function ($routeProvider) {
$routeProvider.
when('/', {
templateUrl: 'Home/Overview',
controller: 'OverviewPageController'
})
.when('/Issue/:id', {
templateUrl: 'Home/Issue'
})
.otherwise({ redirectTo: '/' });
}
routes.$inject = ['$routeProvider'];
angular.module('PublicationSchedulerApp')
.config(routes);
}());
如果我在 <ng-view>
之外添加一个 link 标签:
<a ng-href="#/Issue/123">Issue</a>
'Issue' 页面按预期加载到视图中。
然而,在我的例子中,Overview 控制器通过异步 Ajax 调用加载一些数据,然后使用自定义指令呈现 table,而自定义指令又使用 <ng-repeat>
。如果我在此 directive/table:
中创建相同的 link
<tr ng-repeat="issue in issues">
<td>
<a ng-href="#/issue/{{ issue.issueId }}">{{ issue.subject }}</a>
</td>
</tr>
路由不起作用。如您所见,我尝试将 link 属性从 href
更改为 ng-href
,但这似乎没有任何区别。我猜测数据的异步加载以某种方式破坏了路由,但我不确定如何修复它。一些帖子建议我在数据加载后重新加载 $route:
angular.module('PublicationSchedulerApp')
.run(['$route', function ($route) {
$route.reload();
}]);
但这似乎也没有任何区别。
任何帮助将不胜感激 - 谢谢。
在Angular中,路由区分大小写。因此,请确保您的链接与您的路线相匹配。
<tr ng-repeat="issue in issues">
<td>
<a ng-href="#/Issue/{{ issue.issueId }}">{{ issue.subject }}</a>
</td>
</tr>
您也可以使用 ui-router,这样您就可以使用州名称而不是 URL 创建链接(更易于维护且不易出错)。
我刚开始尝试 AngularJS 并且遇到了一个问题。
我的主页呈现一个 <ng-view>
元素,我设置了以下路由:
(function () {
var routes = function ($routeProvider) {
$routeProvider.
when('/', {
templateUrl: 'Home/Overview',
controller: 'OverviewPageController'
})
.when('/Issue/:id', {
templateUrl: 'Home/Issue'
})
.otherwise({ redirectTo: '/' });
}
routes.$inject = ['$routeProvider'];
angular.module('PublicationSchedulerApp')
.config(routes);
}());
如果我在 <ng-view>
之外添加一个 link 标签:
<a ng-href="#/Issue/123">Issue</a>
'Issue' 页面按预期加载到视图中。
然而,在我的例子中,Overview 控制器通过异步 Ajax 调用加载一些数据,然后使用自定义指令呈现 table,而自定义指令又使用 <ng-repeat>
。如果我在此 directive/table:
<tr ng-repeat="issue in issues">
<td>
<a ng-href="#/issue/{{ issue.issueId }}">{{ issue.subject }}</a>
</td>
</tr>
路由不起作用。如您所见,我尝试将 link 属性从 href
更改为 ng-href
,但这似乎没有任何区别。我猜测数据的异步加载以某种方式破坏了路由,但我不确定如何修复它。一些帖子建议我在数据加载后重新加载 $route:
angular.module('PublicationSchedulerApp')
.run(['$route', function ($route) {
$route.reload();
}]);
但这似乎也没有任何区别。
任何帮助将不胜感激 - 谢谢。
在Angular中,路由区分大小写。因此,请确保您的链接与您的路线相匹配。
<tr ng-repeat="issue in issues">
<td>
<a ng-href="#/Issue/{{ issue.issueId }}">{{ issue.subject }}</a>
</td>
</tr>
您也可以使用 ui-router,这样您就可以使用州名称而不是 URL 创建链接(更易于维护且不易出错)。