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];
}
}
});
我有一个看起来像这样的控制器:
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];
}
}
});