在href和ui-sref之间切换

时间:2016-11-22 19:53:59

标签: javascript jquery html angularjs

目前我有一个从新闻控制器填充的页面。

news.html

<div class="col-md-4" ng-repeat="article in newsController.news">
<a title="Click to view" href="{{article.location}}" target="_blank">
    <div class="eventHolder">
        <h1>{{article.title}}</h1>
        <hr />
        <p>{{article.description}}</p>
        <p class="date">{{article.date}}</p>
    </div>
</a>
</div>

news.controller.js的格式

var newsPage = angular.module('myApp');
    newspage.controller etc etc...

    ...
    self.news = [
        title:
        description:
        date:
        location: "img/blabla.pdf"

因此,如果位置是pdf,那么它很好。问题是我需要一些页面是实际的html页面,所以他们需要使用ui-sref而不是href。我正在考虑向页面添加另一个属性,如page: true,并在html中添加ng-click以检查它是否是pdf(或页面)。这将决定是使用ui-sref还是href

我不确定如何将“ui-sref / href参数”从控制器“发送”到html。或者,如果我甚至正确地这样做。如果有什么不清楚,请道歉。

UPDATE /澄清

它必须使用ui-sref的原因是页面由$ state提供程序管理,该提供程序也为它的css提供信息。 (页面上没有它的样式表。)

1 个答案:

答案 0 :(得分:3)

您可以在news中添加一个字段,如下所示:

self.news = [{
  ...
  isPage: true,
  ...
}]

然后在HTML中,您可以使用ng-if来决定使用hrefui-sref

<a ng-if="article.isPage" ui-sref="{{article.location}}">
  ...
</a>
<a ng-if="!article.isPage" href="{{article.location}}">
  ...
</a>