我正在尝试让角度UI路由器工作。在标准的 Web 项目中一切都很好,直到我导入到 .net 项目中,一切似乎都坏了。即:
<a ui-sref="someUrl">Click here</a>
在上一个项目中不起作用时。有趣的问题是,如果我添加一个带有值的 href 属性(不能是空字符串),则单击有效。这很烦人,因为我的两个具有相同代码的环境的行为不同。
有谁知道为什么 ui 路由器会在标签上没有设置显式 href 属性的情况下中断?git 文档通过代码示例明确指出,锚标记只需要 ui-sref 属性,因为它会在适用时自行编写 href 标记。
我正在使用角度 1.3.2 和角度 ui-router.0.2.11。
法典:
<h2>Home Page</h2>
<a href="#" ui-sref="someState">Click for profile</a>
<div ui-view="someStateContainer"></div>
从字面上看,这就是正文中的所有基本html。
主.js:
/**
* Primary application definition
*/
var App = App || angular.module("App", [
"ui.router"
]);
App.config(["$stateProvider", "$urlRouterProvider",
function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/");
$stateProvider
.state("someState", {
views: {
"someStateContainer": {
templateUrl: "states/testState"
}
}
})
}]);
<a>
标签必须具有href
属性才能被视为链接。UiRouter的ui-sref
只是一种指导uiRouter如何推导出正确href
的方法,然后它将在元素上设置。
我注意到在某些情况下,uiRouter 不会设置href
。就我而言,有一个用url: "/dashboard"
定义的状态。但是,ui-sref="/dashboard"
不会生成href
属性(甚至不会生成错误)。我必须设置ui-sref="dashboard"
以便uiRouter生成href="#/dashboard"
。也许还有更多情况下 uiRouter 失败而没有错误。
呵