如何在angularJS中为一个视图定义多个控制器?

阿努巴

我试过了

 $routeProvider
     .when('/paintings',
         {
             controller: 'imageController' , 'getPaintingImages'
             templateUrl: 'paintings.html'
         })
     .when('/foods',
         {
             controller: 'imageController' , 'getFoodImages'
             templateUrl: 'food.html'
         })

我想要getPaintingImages和getFoodImages从工厂获取绘画/食物的列表,并希望使用imageController来处理图像。但是只有第一个控制器被调用。

之前我写过代码,仅在imageController中获取图像,

myWebsite.controller('imageController', function imageController($scope, getPaintings){

    $scope.images = getPaintings.images();                // but need to make this work for different set of images
    $scope.imageCount = countObjectElements($scope.images);     
    $scope.selectedImage = $scope.images[0];
    $scope.selectedImageIndex = 0;

    $scope.updateSelectedImage = function(img) {        
        $scope.selectedImage = img;
        $scope.selectedImageIndex = $scope.images.indexOf(img);     
    };  
    $scope.updateSelectedImageIndex = function(val) {       

        alert($scope.imageOf);
        if($scope.selectedImageIndex <= 0)
            $scope.selectedImageIndex = $scope.imageCount;

        $scope.selectedImageIndex = ($scope.selectedImageIndex + val) % $scope.imageCount;      
        $scope.selectedImage = $scope.images[$scope.selectedImageIndex];
    };
});

因为我是angularJS的初学者,所以我不确定创建多个控制器是否是重用imageController的解决方案?如果是,如何执行此操作,否则,如何重新使用imageController为不同的图像集工作。对于功能,通常通过参数传递来重复使用功能。但是在这里,我想知道控制器如何在内部调用视图时采用参数?

佛罗伦斯

getPaintingImages和getFoodImages正在使用工厂来获取您说的图像。听起来您可以在routeProvider中使用诸如resolve:之类的东西,以便在调用imageController时可以找到它们所需的图像。

像这样的东西(假设您的getPaintings和getFoods是服务/工厂,并且获取图像是返回一个$ promise并分解为图像(即$ http请求)的东西):

$routeProvider
    .when('/paintings', {
        controller: 'imageController',
        templateUrl: 'paintings.html',
        resolve: { 
            images: function($q, getPainting) {
                getPainting.images();
            }
        }
    })
    .when('/foods', {
        controller: 'imageController',
        templateUrl: 'food.html',
        resolve: { 
            images: function($q, getFoods) {
                getFoods.images();
            }
        }
    })

然后,您可以访问像这样的图像:

myWebsite.controller('imageController', ['$scope', 'images', function ($scope, images){
    ...
}]);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 mvc 5 中创建一个控制器和多个视图

来自分类Dev

在AngularJS中的一个控制器中控制多个视图

来自分类Dev

在AngularJS中的一个控制器中控制多个视图

来自分类Dev

如何在选项卡视图控制器中为第一个选项卡获取新的视图控制器而不是父视图?

来自分类Dev

一个视图控制器中的多个图形

来自分类Dev

如何在MVC中的一个控制器中为多视图按钮(提交)创建动作?

来自分类Dev

如何在一个视图控制器中使用多个 UIPickerViews

来自分类Dev

如何在多个文件中定义控制器-AngularJs

来自分类Dev

如何从一个导航控制器推送到多个视图控制器?

来自分类Dev

如何在MVC 4中为一个控制器实现面包屑但链接多个动作

来自分类Dev

AngularJS控制器:如何在另一个控制器中调用一个控制器?

来自分类Dev

AngularJS控制器:如何在另一个控制器中调用一个控制器?

来自分类Dev

如何在具有两个自定义UITableViewCells的一个视图控制器中创建两个表视图?

来自分类Dev

如何在另一个视图控制器中取消操作队列

来自分类Dev

如何在另一个视图控制器中检查按钮状态

来自分类Dev

如何在另一个视图控制器中调用另一个方法?

来自分类Dev

如何在AngularJS中与另一个控制器共享$ scope变量?

来自分类Dev

AngularJS:我如何在单元测试的控制器中添加一个函数?

来自分类Dev

AngularJS:如何在另一个控制器中执行方法?

来自分类Dev

如何在来自另一个文件的控制器中定义变量?

来自分类Dev

在视图控制器中全局创建一个方法,并将其调用给多个视图控制器

来自分类Dev

在AngularJS中,如何在一个控制器中创建函数以更改另一个控制器中的变量?

来自分类Dev

如何在一个视图中显示两个视图控制器?

来自分类Dev

在多个视图控制器中重用一个容器视图

来自分类Dev

如何在ASP MVC设置中将AngularJS中的变量从一个控制器传递到另一个控制器?

来自分类Dev

如何在ASP MVC设置中将AngularJS中的变量从一个控制器传递到另一个控制器?

来自分类Dev

如何在 AngularJs 1.7.x 中从一个控制器调用方法到另一个控制器,以刷新 UI 数据

来自分类Dev

如何在ios中自定义推送和弹出动画时将视图传递给另一个控制器?

来自分类Dev

如何在集合视图控制器上添加另一个滚动视图?

Related 相关文章

  1. 1

    如何在 mvc 5 中创建一个控制器和多个视图

  2. 2

    在AngularJS中的一个控制器中控制多个视图

  3. 3

    在AngularJS中的一个控制器中控制多个视图

  4. 4

    如何在选项卡视图控制器中为第一个选项卡获取新的视图控制器而不是父视图?

  5. 5

    一个视图控制器中的多个图形

  6. 6

    如何在MVC中的一个控制器中为多视图按钮(提交)创建动作?

  7. 7

    如何在一个视图控制器中使用多个 UIPickerViews

  8. 8

    如何在多个文件中定义控制器-AngularJs

  9. 9

    如何从一个导航控制器推送到多个视图控制器?

  10. 10

    如何在MVC 4中为一个控制器实现面包屑但链接多个动作

  11. 11

    AngularJS控制器:如何在另一个控制器中调用一个控制器?

  12. 12

    AngularJS控制器:如何在另一个控制器中调用一个控制器?

  13. 13

    如何在具有两个自定义UITableViewCells的一个视图控制器中创建两个表视图?

  14. 14

    如何在另一个视图控制器中取消操作队列

  15. 15

    如何在另一个视图控制器中检查按钮状态

  16. 16

    如何在另一个视图控制器中调用另一个方法?

  17. 17

    如何在AngularJS中与另一个控制器共享$ scope变量?

  18. 18

    AngularJS:我如何在单元测试的控制器中添加一个函数?

  19. 19

    AngularJS:如何在另一个控制器中执行方法?

  20. 20

    如何在来自另一个文件的控制器中定义变量?

  21. 21

    在视图控制器中全局创建一个方法,并将其调用给多个视图控制器

  22. 22

    在AngularJS中,如何在一个控制器中创建函数以更改另一个控制器中的变量?

  23. 23

    如何在一个视图中显示两个视图控制器?

  24. 24

    在多个视图控制器中重用一个容器视图

  25. 25

    如何在ASP MVC设置中将AngularJS中的变量从一个控制器传递到另一个控制器?

  26. 26

    如何在ASP MVC设置中将AngularJS中的变量从一个控制器传递到另一个控制器?

  27. 27

    如何在 AngularJs 1.7.x 中从一个控制器调用方法到另一个控制器,以刷新 UI 数据

  28. 28

    如何在ios中自定义推送和弹出动画时将视图传递给另一个控制器?

  29. 29

    如何在集合视图控制器上添加另一个滚动视图?

热门标签

归档