angularjs将变量中的渲染值保存在html中

时间:2014-02-26 15:39:00

标签: html angularjs spring-mvc

我希望有人可以帮助我,这可能是一个奇怪的问题,因为我没有在网上找到答案。

我调用数据库并检索项目的列表(在json中)。 然后在angularjs中,我通过提取相关的数据(名称,年龄等)来呈现此列表,并在表格中将其正确显示为行列表。

然后我有一个编辑按钮,将我带到另一个页面,我想放下一个下拉列表。 我想知道是否可以将我之前在上一页中创建的呈现列表添加到该下拉列表中。 是否可以将先前渲染的列表保存在变量中,然后在下拉列表中使用该变量?

谢谢

2 个答案:

答案 0 :(得分:0)

我认为您可以将列表存储在控制器中,并将此数据提供给此下拉列表。

答案 1 :(得分:0)

不是尝试查询列表,而是将列表添加到模板中,从模板中获取列表并在其他地方呈现,我建议查询列表,将列表保存在服务中,然后当您想再次使用该列表,从服务中获取它。类似的东西:

服务:

var services = angular.module('services');

services.factory('getListService',['$http',function($http){
    var getListOfStuff = function(){
        //call to database
        return //your json
    };

    var extractNameAgeEtc = function(){
        var myListOfStuff = //get list of stuff from $http or database
        var myListOfNameAgeEtc = //make a list of tuples or {name,age,etc} objects
        return myListOfNameAgeEtc;
    };

    return {
        extractNameAgeEtc : extractNameAgeEtc
    };
}]);

控制器:

angular.module('controllers',['services']);

var controllersModule = angular.module('controllers');

controllersModule.controller('tableRenderController',['getListService','$scope',function(getListService,$scope){
    //use this with your table rendering template, probably with ng-repeat
    $scope.MyTableValue = getListService.extractNameAgeEtc();
}]);

controllersModule.controller('dropdownRenderController',['getListService','$scope',function(getListService,$scope){
    //use this with your dropdown rendering template, probably with ng-repeat
    $scope.MyDropDownValue = getListService.extractNameAgeEtc();
}]);