首先,对不起,如果我的英语不是很好。
我正在开发一个移动应用程序,我有一个过滤ng-repeat的问题。 数据从$ rootScope中的在线json文件(然后在本地存储)加载,并且应用的过滤器不起作用。
我app.js的一部分
app.run(function($rootScope, $http, $location, dataService) {
$rootScope.globalDatas = false;
if($rootScope.globalDatas === false) {
dataService.getGlobalDatas(reload).then(function(dataset){
$rootScope.globalDatas = dataset;
}, function(error){
alert(error);
});
}
});
dataService.js
app.service('dataService', ['$q', '$http', 'saveFile',function($q, $http, saveFile) {
var that = this;
this.globalData = false;
this.getGlobalDatas = function(reload) {
var defered = $q.defer();
if(reload)
that.globalData = false;
if (that.globalData !== false) {
defered.resolve(that.globalData);
} else {
var url = "My json url"
$http.get(url).success(function(dataset, status) {
that.globalData = dataset;
defered.resolve(dataset);
}).error(function(data, status) {
defered.reject("Erreur, le fichier de données n'a pas été trouvé, merci de mettre à jour l'application via la menu.");
});
}
return defered.promise;
};
}]);
我的home.html。数据显示在此视图中
<section class="page">
<div id="recherche">
<input type="text" ng-model="recherche" placeholder="Recherche" class="clasicInput">
{{recherche | json}}
</div>
<!-- | orderBy:'firstdate' -->
<article class="elementListe" ng-repeat="element in datas | filter: {titre: recherche}" ng-click="goUrl(element.id)">
<div class="affiche">
<img src="{{getURl(element.affiche, 'evenement/'+element.id+'/affiche/')}}" alt="{{element.titre}}">
<div></div>
</div>
<div class="contenue">
<h1 ng-bind-html="element.titre | characters: nombreCaractere"></h1>
<div class="date">
<span ng-if="element.dates.length > 1">du {{getDate(element.firstdate)}} au {{getDate(element.dates[1].dateevent)}}</span>
<span ng-if="element.dates.length == 1">le {{getDate(element.firstdate)}}</span>
</div>
<div class="lieu">
{{globalDatas.lieu[element.id_lieu].titre}}
</div>
</div>
<div class="fleche">
<span class="glyphicon glyphicon-chevron-right"></span>
</div>
</article>
</section>
标题上的过滤器不起作用。有谁知道为什么?