2016-07-26 15 views
0

HTMLから関数を呼び出し、返された結果を表示したい。ここテンプレートのコントローラから返された結果を表示

は、HTMLコードである:

self.getDamageEvents = function (reviewsId) { 
    var t; 
    return $http.get(config.baseUrl + "api/DamageEvent/GetEventsByReviewsId/" + reviewsId).then(function (result) { 
     t=result.data; 
    }); 
    return t 
} 

getDamageEvents()関数は、いくつかの文字列を返す:ここ

<td ng-init="'damages = list.getDamageEvents(soData.damagesId)'"> 
    {{damages}} 
</td> 

は、コントローラ内の関数です。

テンプレートビューでは返された結果は表示されません。

編集:私は分離株スコープとしてgetDamageEvents機能にアクセスする必要が

返された結果が表示されない理由は何ですか?

答えて

2

$ http.getあなたの代わりにあなたがこのような成功コールバックで損害と呼ばれる変数にあなたの結果に影響を与える必要があり、あなたの関数のgetDamageEventsの最後に結果を返すことができませんので、promiseを返します。

self.getDamageEvents = function (reviewsId) { 
    $http.get(config.baseUrl + "api/DamageEvent/GetEventsByReviewsId/" + reviewsId) 
    .then(function (result) { 
    self.damages = result.data; 
    }); 
} 

その後、あなたはデータを回復

1

あなたがこれを行う:

{{damages}} 

角度は、自分のスコープ内の名前「損害賠償」の変数をチェックします。だからあなたはあなたのコントローラースコープにその正確な名前の変数を持っていますか?私:

$scope.damages = ... 

(controllerAs構文を使用していないと仮定します)。

+0

いいえ私はしません。しかし、私は隔離された範囲を使用したい – Michael

2

あなたの関数が$scope.damagesを設定する必要があり、あなたのビューで変数損害にアクセスすることができます。

self.getDamageEvents = function (reviewsId) { 
    var t; 
    return $http.get(config.baseUrl + "api/DamageEvent/GetEventsByReviewsId/" + reviewsId).then(function (result) { 
     t = result.data; 
     $scope.damages = t; 
    }); 
    return t; 
} 

は、あなたの完全なコードを知ってはいけないので、私はreturn t;文を削除しませんが、私はあなたがそれを必要としないと思います。

+1

t変数は役に立たないようです、私は最終的な結果を保存するためにそれを作成したと思います。 –

+0

分離スコープを使用するには、self.damages = result.data –

関連する問題