2016-11-22 14 views
2

現在、私はニュースコントローラから読み込まれたページを持っています。 news.controller.jshrefとui-srefの切り替え

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

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

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> 

フォーマットそこで位置がPDFである場合、それは結構です。問題は、hrefの代わりにui-srefを使用する必要があるため、一部のページが実際のHTMLページである必要があることです。私はpage: trueのようなページに別の属性を追加し、それがpdf(またはページ)かどうかを確認するためにhtmlにng-clickを追加することを考えていました。これにより、ui-srefhrefのどちらを使用するかが決まります。

コントローラーからui-sref/hrefパラメーターをhtmlに送信する方法がわかりません。または、これを正しく行っていても。何かが不明な場合はお詫び申し上げます。それはUI-SREFを使用しなければならない

UPDATE /明確化

理由は、ページがまたそれのCSSのためにそれに情報を与えている$状態プロバイダーによって管理されています。 (それはページ上にスタイルシートを持っていません)。

+0

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

次にHTMLに、あなたがhrefui-srefを使用することを決定しng-ifを使用することができます'href'はリンクを別の状態のURLに向けます。もちろん、URLの先頭に '/#/'が必要です。 –

+0

いくつかのページは、 '$ state.provider'を使っていくつかの機能を提供していますし、CSSにも与えています。 – Joey

答えて

2

あなたはこのようnewsにフィールドを追加することができます:私はあなたが簡単に使用することができると思う

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

これは私が探していると思いますが、1つのタグでこれを行う方法はありますか?私が各 ''にそれを指定していれば、それは役に立たないものです。 – Joey

+0

さて、あなたはいつもそのための指令を作成することができます。あるいは、 'news'オブジェクトが配列であれば、いつでも' ng-repeat'を使うことができます。 – willie17

+0

これはうまくいった。私はすでにng-repeatのときに複数のタグを追加していたと思っていたので、最初は混乱しました。ありがとう! – Joey