gpt4 book ai didi

angularjs 跨路由维护范围变量

转载 作者:行者123 更新时间:2023-12-04 19:06:19 24 4
gpt4 key购买 nike

如何跨路线维护模型。例如,我有一个加载到主页上的配置文件列表。主页还包含一个“加载更多”操作来加载更多配置文件,基本上将数据推送到模型。单击特定配置文件时,该配置文件的详细 View 将通过路由激活。详细 View 有一个后退按钮,可将用户重定向回主页。在路由回主页时,由“加载更多”操作加载的数据(配置文件)会丢失。我需要使用“加载更多”前置数据来维护模型

下面是使用的代码

/* Controllers */
var profileControllers = angular.module('profileControllers', ['profileServices'])


profileControllers.controller('profileListCtrl', ['$scope','$location', 'Profile','$http',
function($scope,$location, Profile,$http) {
$scope.Profiles = Profile.query(function(){

if($scope.Profiles.length < 3) {
$('#load_more_main_page').hide();
}
});
$scope.orderProp = 'popular';
$scope.response=[];

//LOADMORE
$scope.loadmore=function()
{

$http.get('profiles/profiles.php?profile_index='+$('#item-list .sub-item').length).success(function(response){
if(response) {
var reponseLength = response.length;
if(reponseLength > 1) {
$.each(response,function(index,item) {


$scope.Profiles.push({
UID: response[index].UID,
id: response[index].id,
popular: response[index].popular,
imageUrl: response[index].imageUrl,
name: response[index].name,
tags: response[index].tags,
category: response[index].category
});

});
}
if(reponseLength < 3) {
$('#load_more_main_page').hide();
}
}

});


}

}]);





/* App Module */

var profileApp = angular.module('profileApp', [
'ngRoute',
'profileControllers',
'profileServices',
]);



profileApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/profiles', {
templateUrl: 'partials/profile-list.html',
controller: 'profileListCtrl',
resolve: {
deps: function ($q, $rootScope) {
var deferred = $q.defer();
var dependencies = ['js/sort.js'];
$script(dependencies, function () {
$rootScope.$apply(function () {
deferred.resolve();
});
});
return deferred.promise;
}
}
}).
when('/profiles/:profileId', {
templateUrl: 'partials/profile-detail.html',
controller: 'profileDetailCtrl',

}).
when('/profiles/cat/:category', {
templateUrl: 'partials/profile-list-category.html',
controller: 'profileCategoryListCtrl',

}).
when('/create/', {
templateUrl: 'partials/profile-create.html',
controller: 'profileCreateCtrl',
css: ['css/createprofile.css','css/jquery-ui-1.10.4.custom.min.css','css/spectrum.css'],

}).
otherwise({
redirectTo: '/profiles'
});
}]);

最佳答案

服务通常是在 View 之间共享数据的公认方式。因为它是一个单例并且不会在路由更改时重新生成,所以您可以在那里“缓存”数据并从服务注入(inject)的任何 Controller 中检索它。

这个问题的第二个答案用代码解释了它:

Same data in multiple views using AngularJS

关于angularjs 跨路由维护范围变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23397896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com