私はAngularJSに問題があります。 NG-繰り返し、私はNG-繰り返し一般的なファクトリとng-repeatリフレッシュを持つ2つのコントローラ
を表示する必要があり、私はsecoundコントローラでJSON(function(){
'use strict';
angular.module('mainApp').controller('ListController', function($scope, FavoriteListService) {
$scope.addToFavorites = function(speaker){
FavoriteListService.setFavorites(speaker);
};
})();
を設定し、私は最初のコントローラでは、コントローラ
の別のインスタンスからJSONに新しい項目を追加するときにループをリフレッシュしたいdosn't
(function(){
'use strict';
angular.module('mainApp').controller('ShowController', function($scope, FavoriteListService) {
$scope.favoritesList = FavoriteListService.getFavorites();
})();
工場
(function() {
'use strict';
angular.module('mainApp').factory('FavoriteListService', function() {
var obj = {};
obj.getFavorites = function() {
var favorites = localStorage.getItem('speaker-favorites');
if (favorites == null) {
favorites = {};
} else {
favorites = JSON.parse(favorites);
}
return favorites;
};
obj.setFavorites = function (speaker) {
var favorites = obj.getFavorites();
favorites[speaker.uid] = {firstname: speaker.firstname, name: speaker.name};
localStorage.setItem('speaker-favorites', JSON.stringify(favorites));
};
return obj;
});
})();
テンプレート:
<ul>
<li ng-repeat="(key, fav) in favoritesList">
{{fav.firstname}} {{fav.name}}
</li>
</ul>
&ディスプレイが1つのコントローラに設定されている場合は、すべて問題ありません。
ng-repeatは、2ページのコントローラを使用したい場合、またはロードページの後にすべてのアイテムを正しく表示しますが、新しいアイテムを追加するとループがリフレッシュされず、新しいアイテムが表示されません。
これを修正する方法はありますか?
最初のソリューションが動作しない参照が、secound私の問題を解決しました。ありがとう –