2014-11-24 75 views
0

我试图让角度UI路由器工作。在一个标准的Web项目中,这一切都很好,直到我导入到一个.net项目中,一切似乎都破灭了。即:Angular UI路由器 - 休息无href属性

<a ui-sref="someUrl">Click here</a> 

不起作用,当它在上一个项目中。 有趣的是,如果我添加一个带有值的href属性(不能是空字符串),点击工作。这很烦人,因为我的两个具有相同代码的环境的行为不同。

有谁知道为什么ui路由器会在标签上没有设置明确的href属性而破坏? git文档明确指出,代码示例,锚标签只需要ui-sref属性,因为它会在适用时自行编写href标签。

我正在使用angular 1.3.2和angular-ui-router.0.2.11。

代码:

<h2>Home Page</h2> 

<a href="#" ui-sref="someState">Click for profile</a> 
<div ui-view="someStateContainer"></div> 

也就是说字面上所有身体内的基本HTML的。

main.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" 
        } 
       } 
      }) 
}]); 
+0

当你说这个链接不起作用时,点击它时会发生什么? – Claies 2014-11-24 17:07:07

+0

对不起 - 应该澄清。 “无” - 例如你点击,并且没有任何反应,就好像这是一段或一段时间。甚至连提琴手都没有提出要求。我会用一些代码更新OP,因为这是有帮助的。 – dudewad 2014-11-24 17:10:49

+0

是您在.html页面或剃刀.cshtml中的代码吗?以及链接在浏览器中呈现的视图源中的实际外观是什么? – Claies 2014-11-24 17:18:55

回答

0

<a>标签必须有一个href属性被视为一个链接。 UiRouter的ui-sref只是一种指示uiRouter如何派生适当的href的方法,然后它将在元素上设置。

我注意到在某些情况下,uiRouter确实不是设置为href。在我的情况下,有一个状态由url: "/dashboard"定义。但是,ui-sref="/dashboard"不会生成href属性(甚至没有错误)。我必须设置ui-sref="dashboard",所以uiRouter会生成href="#/dashboard"。也许有更多的情况下uiRouter失败没有错误。

HTH

+0

它的一切都很好,现在我们已经在Ng2上了......就像2年一样。这现在是无关紧要的。 – dudewad 2017-11-10 04:38:50