1

ng-repeat の繰り返しごとにコールバックを発行する方法はありますか。フィルタリングされたコレクションがあり、アイテムが表示されるたびにテキストを動的に変更する必要があります。不可能な場合、回避策はありますか?

<span ng-repeat="item in items|myfilter">
    <div nonexisting-ng-repeat-callback="getTextFromServer({{item.id}})"></div>
</span>

アップデート:

次のことを試すと:

<span ng-repeat="item in items|myfilter">
    <div ng-style="{{item.style}}" ng-init="getTextFromServer(item)"></div>
</span>

これで $scope

$scope.getColor = function (item) {
    var data = item.percentageComplete;
    if (data == 100) {
        return {
            color: "green"
        };
    } else {
        return {
            color: "orange"
        };
    }
};

$scope.getTextFromServer = function (item) {
        $http({
            method: 'GET',
            url: '/mypage',
            params : {"uri" : item.Url +"&Result=Percentage"}
        }).
        success(function (data, status, headers, config) {
            item.percentageComplete = data;
            item.style = $scope.getColor(item);
        }).
        error(function (data, status, headers, config) {
            console.log(data + " - " + status);
            item.percentageComplete = undefined;
            item.style = $scope.getColor(item);
        });
};

getTextFromServer が呼び出されますが、http 呼び出しが返されたときに ng-style は更新されません。

よろしく、 リーン

4

2 に答える 2

3

ng-initまたはng-showディレクティブを使用できます。

<span ng-repeat="item in items|myfilter">
    <div ng-init="getTextFromServer({{item.id}})"></div>
</span>

また

<span ng-repeat="item in items|myfilter">
    <div ng-show="condition"></div>
</span>
于 2013-06-26T09:04:17.260 に答える