使用ui-router服务在离子框架中使用ui-sref和href(在哪里使用)之间的区别

sac*_*hal 4 javascript angularjs ionic-framework

我正在研究离子骨架.所以我对使用ui-sref和href很困惑.例如,对于制表符,我们使用ui-sref,因为我们可以将各种状态都链接到一些主(基本)URL.

例如

  .state('dashboard', {
    url: "/dashboard",
    templateUrl: 'templates/dashboard.html',
    controller: 'dashboardCtrl'
})

 .state('dashboard.active', {
    url: '/active',
     views: {
              'active': {
                templateUrl:  'templates/active.html',
                controller: 'ActiveCtrl'
              }
            }

})
Run Code Online (Sandbox Code Playgroud)

如果我想从这些状态或模板之一(例如,到active.html)移动到不同的模板,我的仪表板页面有标签,它现在有各种不同的状态.

//active.html

 <li class="item">
   <a class="button button-positive" ui-sref="dashboard.editClaim"> Edit Claim
   </a>
 </li>
Run Code Online (Sandbox Code Playgroud)

要么

 <li class="item">
   <a class="button button-positive" href="#/dashboard/editClaim"> Edit Claim
   </a>
 </li>
Run Code Online (Sandbox Code Playgroud)

我应该使用ui-sref或href.editclaim模板也有选项卡,如果我在那里使用ui-sref,它会正常工作,因为目前这是问题所在.所以我想知道我是否必须保持一些状态直到那里.谢谢.

Max*_*tin 8

我应该使用ui-sref或href.

来自docs:https://github.com/angular-ui/ui-router/wiki/Quick-Reference#ui-sref

将链接(标记)绑定到状态的指令.如果状态具有关联的URL,则该指令将通过$ state.href()方法自动生成和更新href属性.单击该链接将触发带有可选参数的状态转换.此外,浏览器还会本地处理中键,右键单击和按住Ctrl键单击链接.

<a ui-sref="home">Home</a> 转换为:

<a href="#/home" ui-sref="home">Home</a>
Run Code Online (Sandbox Code Playgroud)

ui-sref如果您决定使用,请使用ui-router.这是最佳做法.您可以更改相同状态的代码关联URL,而无需维护链接.


开发人员很少href在大型列表中使用以获得更好的性能以避免其他观察者,但希望它不是您的情况