1

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式を解釈する原因となっているのは何ですか?

4

1 に答える 1

0

-> setDisplayedFilters(account.AccountId)

于 2014-01-07T17:05:19.463 に答える