3

コントローラー内に単純なサービスがあります。

function OPctrl($scope, $http) {
    var s = 'http://query.yahooapis.com/v1/public/yql?q=select * from etc..... &format=json&callback=JSON_CALLBACK';
  $http.jsonp(s).success(function(data) {
      $scope.titoli = data.query.results.ROWSET.ROW;
  }).
  error(function(data, status, headers, config) {
    alert("error!")
    });
}   

コントローラーは、テーブル内のいくつかのデータをバインドします。必要なたびに(つまり、更新ボタンを使用して)データを呼び出して更新する必要があります。コントローラー内で作業できますか?方法は? または、カスタムサービスが必要ですか? 私はAngularが初めてですが、誰でも助けてもらえますか?

4

1 に答える 1

1

カスタムサービスを使用することをお勧めします。データをコントローラーに返すには、次の 3 つのオプションがあります。

  • promise を返し ($q を使用)、promise then() 関数でスコープ値を設定します
  • サービス関数にコールバックを追加し、スコープ値を設定します
  • サービスがプリミティブ型ではなくオブジェクトを返してスコープに設定できるようにします

サービスを使用するには、コントローラーに注入するだけです。

app.contoller('Ctrl', ['$scope', 'service', function($scope, service) {
...
}]);

3 つの可能性はすべて、このjsFiddleで実際に見ることができます。

于 2013-01-04T11:19:19.627 に答える