2015-03-25 46 views
1
<tbody> 
    <tr ng-repeat="message in messages" ng-click="go('pair/{{message.currencyFrom}}/{{message.currencyTo}}')"> 
     <td>{{ message.currencyFrom }}/{{ message.currencyTo }}</td> 
     <td>{{ message.amountSell }}</td> 
     <td>{{ message.amountBuy }}</td> 
     <td>{{ message.rate }}</td> 
    </tr> 
</tbody> 

在Chrome的檢查DOM的視圖,顯示ng-click="go('pair/EUR/GBP')"但點擊時我在pair/%7B%7Bmessage.currencyFrom%7D%7D/%7B%7Bmessage.currencyTo%7D%7DAngularjs - 網址參數:當點擊返回角瓦爾在url

最終看來URL爲原料通過角度變量。

我試過在循環中添加代碼,但展現了相同的行爲。
我第一次嘗試發起一個變量,並把它傳遞給go功能:
ng-init="var url = 'pair/{{message.currencyFrom}}/{{message.currencyTo}}'"

我無法想象它的相關性,但這裏去:

$scope.go = function (path) { 
     $location.path(path); 
    }; 

回答

1

嘗試這樣的:

ng-click="go('pair/' + message.currencyFrom + '/' + message.currencyTo)" 

這是因爲你在ng-click內寫入表達式,而不是模板。與ng-init相同。

在指令:

scope: { 
    foo: '=', // This means `foo` must be an expression 
    bar: '@' // This means `bar` must be template 
} 

See this question for detailed explanation

+0

嘆了口氣..我試過這個,但包裹了瓦爾斯{{}} ..啊。謝謝 – mr12086 2015-03-25 12:44:47

1

的 '{{}}' 將被評估爲字符,而不是作爲有效角的代碼。將其更改爲:

go('pair/' + message.currencyFrom + '/' + message.currencyTo); 

角將在處理引號之間的一切NG-單擊以Javascript代碼,所以沒有必要使用「{{」或「}}」。