2016-11-24 2 views
0

私はイオンのアプリビューで、次のコードをHAE:構文エラー:トークン「&&」ではない一次式

<ion-item 
    ng-repeat="milestone in project.milestones" 
    href="#/tab/activity/{{milestone.slug}}/milestone" 
    ng-style="{{now | amDifference : null : 'days'}} > {{milestone.due_date | amDifference : null : 'days'}} && {'color':'red'} || {'color': 'blue'}"> 

それは私に、このエラーを与えているしかし:

Error: [$parse:syntax] Syntax Error: Token '&&' not a primary expression at column 6 of the expression [0 > && {'color':'red'} || {'color': 'blue'}] starting at [&& {'color':'red'} || {'color': 'blue'}].

Hovever上記エラーdoesntは実行に影響を与えるように見える(今のところ私は思う)私はどこから来ているのか分からない。コード内 iがmoment.js

答えて

0

あなたが不足しているを使用して設定時刻に現在の時刻を比較しようとしています上記の「NGスタイルの後に。あなたのNG-style属性で

+1

これは質問を解決するかもしれませんが、説明を含めて本当にあなたの投稿の質を向上させるのに役立ちます。 –

1

式」doesnのトン意味します

{{now | amDifference : null : 'days'}} > {{milestone.due_date | amDifference : null : 'days'}} && {'color':'red'} || {'color': 'blue'} 

それは文字通り単一のオブジェクト、または1つに評価角度表現でなければなりません

「>」の左側には、あなたが「{{」で囲まれた何かを持っています。これは角度式では有効ではありません。 '{{'をsubstiさもなければ角のない表現をとらない場所で発音してください。私はあなたが値にフィルターを使いたいので、これをしたと思いますが、フィルターをスコープに公開する必要があるため、このような状況では簡単にはできません。同様に近く、私はあなたがこのような何かをしようとしている作ることができるよう

$scope.itemStyle = function itemStyle(now, milestone) { 
    if (amDifferenceFilter(now, null, 'days') > amDifferenceFilter(milestone.due_date, null, 'days')) { 
     return { color: 'red' } 
    } else { 
     return { color: 'blue' } 
    } 
} 

また、あなたはまだ行って、あるいは単に瞬間を使用していない場合は、お使いのコントローラにamDifferenceFilterを注入する必要があります。 jsをjavascriptコードから直接呼び出します。

次に、あなたのHTMLは次のようになります。ng-styleで複雑な式を書く

<ion-item ng-repeat="milestone in project.milestones" 
    href="#/tab/activity/{{milestone.slug}}/milestone" 
    ng-style="itemStyle(now,milestone)"> 

が混乱することができ、コントローラにそれらを引き出すほうが良い場合が多いです。

関連する問題