ng-repeat を介して表示される値をコントローラーの関数に渡そうとしています。値は HTML で適切に表示されますが、関数に取り掛かると、実際の値ではなく AngularJS 式が表示されます。
HTML は次のとおりです。
<li ng-repeat="account in accounts | filter:accountQuery" ng-click="setDisplayedFilters('{{account.AccountId}}')">
<span>{{account.Name}}</span>
</li>
ブラウザ (この場合は Chrome) 内の要素を調べると、想定どおりに実際の AccountId が表示されます。
setDisplayedFilters 関数は次のとおりです。
$scope.setDisplayedFilters = function(accountId){
alert(accountId);
$.each($scope.accounts, function(i, item){
if(item.AccountId == accountId)
{
alert("Selected Account Id: " + accountId + "Matching Id in accounts Array: " + item.AccountId);
}
});
};
JavaScript の最初のアラートが実行され、「{{account.AccountId}}」が表示されます。2 つ目は、{{account.AccountId}} を実際のアカウント ID と比較しているため、そうではありません。だから私が疑問に思っているのは、角度がその場所にあるべき値ではなく文字通りAngularJS式を解釈する原因となっているのは何ですか?