AngularJS 表达式无效

AngularJS Expression is not working

我有一个看起来像这样的控制器:

app.controller('DealCtrl', function($scope, Deals) {
    Deals.all().then(function (deals) {
        $scope.deals = deals;
        console.log($scope.deals);
    });
});

还有一个 services.js 这样的:

var app = angular.module('starter.services', []);

app.factory('Deals', function($http) {
    function getDeals() {
        return $http.get('http://www.domain.com/library/fct.get_deals.php')
        .success(function (data) {
            var deals = data;
            return deals;
        })
        .error(function(err){
      });
  }

  return {
    all: function() {
        return getDeals();
    },
    get: function(keyID) {
        //...
    }
  }
});

它从我的服务器获取具有以下结构的对象:

[
  {
    id: "1",
    category: "...",
    title: "...",
    ...
  },
  { ... }
]

问题是,我无法在 index.html 中输出 title 属性。我想按以下方式进行:

...
<ion-content ng-repeat="deal in deals">
  <div class="list card">

    <div class="item item-avatar">
      <img src="img.jpg">
      <h2>{{deal.title}}</h2>
      <p>Text</p>
    </div>

  </div>
</ion-content>
...

它只是什么都不显示。我做错了什么?

在您的控制器中,您正在等待 .then 在您的 .all() 之后,但您还没有将 getDeals 设置为那样工作,这是您的操作方式:

app.factory('Deals', function($http, $q) {
    function getDeals() {
        var myPromise = $q.defer();
        $http.get('http://www.domain.com/library/fct.get_deals.php')
            .success(function (data) {
                var deals = data;
                myPromise.resolve(deals);
            })
            .error(function(err){
                myPrmoise.reject();
            });
        return myPromise.promise;
    }

    return {
        all: function() {
            return getDeals();
        },
        get: function(keyID) {
            return restaurants[keyID];
        }
    }
});