Angularjs - url 参数:单击时 returns 到 angular 中的变量 url
Angularjs - url params: When clicked returns to angular vars in the url
<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%7D
似乎 url 作为原始 angular 变量传递。
我尝试在循环中添加代码,但出现了相同的行为。
我尝试先启动一个变量并将其传递给 go
函数:
ng-init="var url = 'pair/{{message.currencyFrom}}/{{message.currencyTo}}'"
我无法想象它是相关的,但现在开始:
$scope.go = function ( path ) {
$location.path( path );
};
这样试试:
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
“{{}}”将被评估为字符,而不是有效的 Angular 代码。将其更改为:
go('pair/' + message.currencyFrom + '/' + message.currencyTo);
Angular 将处理 ng-click 中引号之间的所有内容作为 Javascript 代码,因此无需使用“{{”或“}}”。
<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%7D
似乎 url 作为原始 angular 变量传递。
我尝试在循环中添加代码,但出现了相同的行为。
我尝试先启动一个变量并将其传递给 go
函数:
ng-init="var url = 'pair/{{message.currencyFrom}}/{{message.currencyTo}}'"
我无法想象它是相关的,但现在开始:
$scope.go = function ( path ) {
$location.path( path );
};
这样试试:
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
“{{}}”将被评估为字符,而不是有效的 Angular 代码。将其更改为:
go('pair/' + message.currencyFrom + '/' + message.currencyTo);
Angular 将处理 ng-click 中引号之间的所有内容作为 Javascript 代码,因此无需使用“{{”或“}}”。