2015-07-10 18 views
2

我在使用ng指令時卡住了一個點。我將兩個參數傳遞給mouseoverOnStep函數,一個是對象值本身,第二個是元素的selector。我有下面的HTML代碼將對象值連接到html模板中的字符串變量

<li ng-mouseover="mouseoverOnStep(Color.color_value, '.mask-second-{{Color.id}}');" ng-repeat="Color in select.Color">&nbsp;</li> 

什麼我得到的輸出,當我檢查我的元素。這是

<li ng-repeat="Color in select.Color" ng-mouseover="mouseoverOnStep(Color.color_value, '.mask-second-');" class="ng-scope">&nbsp;</li> 

隨着

Error: [$parse:syntax] 

爲什麼我沒有得到的{{Color.id}}在DOM的價值? 我期待着類似的東西。

ng-mouseover="mouseoverOnStep(Color.color_value, '.mask-second-12');" 
ng-mouseover="mouseoverOnStep(Color.color_value, '.mask-second-13');" 

任何幫助,將不勝感激。

+0

您不在函數中放置大括號表達式,它已經接受了一個角表達式。所以改變它在'Color.id'中傳遞並且在函數中將它與''.mask-second-''連接起來 –

回答

2

這已經是一個角的表達式:

ng-mouseover="mouseoverOnStep(Color.color_value, '.mask-second-{{Color.id}}');" 

{{ }}成JavaScript無效。

你有2種選擇:

ng-mouseover="mouseoverOnStep(Color.color_value, '.mask-second-'+ Color.id);" 

這不會評價,並顯示Color.id的價值,又何必呢?這與在JavaScript中編寫此功能相同:

function showMeId(value){ console.log(value); }

showMeId('。mask-second-'+ Color.id); //在javascript中你永遠不會看到評估。

- 或 -

ng-mouseover="mouseoverOnStep(Color);" 

mouseoverOnStep

function mouseoverOnStep(color) { 
    var cssClass = '.mask-second-' + Color.id; 
} 

我認爲你要與什麼是JavaScript和HTML是什麼,什麼就會執行這個困惑。

+0

請原諒你的第一個答案對我沒有用。它給出輸出ng-mouseover =「mouseoverOnStep(Color.color_value,'.mask-second - '+ Color.id);」'而不是'ng-mouseover =「mouseoverOnStep(Color.color_value,'.mask-second -12' );「'。對於你的第二個答案,我只需要去解決這個問題。我試圖做一個全局函數,所以你可以從任何地方調用這個(視圖).. – Vineet

+0

它不會取代價值,它還沒有被執行的JavaScript ...我不知道你在問什麼... –

+0

現在已經有效了。謝謝 :-) – Vineet

相關問題