2015-03-25 2 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> 

Вид дома в Хроме инспектировать, показывает ng-click="go('pair/EUR/GBP')" однако при нажатии я в конечном итоге на pair/%7B%7Bmessage.currencyFrom%7D%7D/%7B%7Bmessage.currencyTo%7D%7DAngularjs - URL Титулы: Когда нажимал возвращаются к угловому Варсу в 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

1

'{{}}' будет оцениваться как символы, а не как действительный угловой код. Измените его на:

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

Угловая будет обрабатывать все между кавычками в нг-нажатие Javascript кода, поэтому нет необходимости использовать «{{» или «}}».