Angularjs 从控制器中标识当前ui视图

Angularjs 从控制器中标识当前ui视图,angularjs,angular-ui-router,Angularjs,Angular Ui Router,有人知道控制器在哪个ui视图中吗 我遇到的问题是一个两元素(对象)数组被发送到一个状态。所述数组的每个元素都应该在我的ui视图中呈现。元素的渲染顺序取决于对象中提供的键之一。一旦获得了键的值,我就可以在视图对应的位置渲染视图,但是在不知道控制器正在其中操作的视图的名称的情况下,我无法确定顺序 这是我将得到的一个示例响应 "resources": [ { "video":"http://url.to/some/video+on+the+server",

有人知道控制器在哪个ui视图中吗

我遇到的问题是一个两元素(对象)数组被发送到一个状态。所述数组的每个元素都应该在我的
ui视图中呈现。元素的渲染顺序取决于对象中提供的键之一。一旦获得了键的值,我就可以在视图对应的位置渲染视图,但是在不知道控制器正在其中操作的视图的名称的情况下,我无法确定顺序

这是我将得到的一个示例响应

    "resources": [
      {
        "video":"http://url.to/some/video+on+the+server",
        "position": 1
      }, {
        "image":"http://placehold.it/600x450&text=img2",
        "position": 0 
      }
    ]
这是我的模板的外观:

<div class="parent"><div class="col-md-6" ui-view="left"></div></div>
<div class="parent"><div class="col-md-6" ui-view="righ"></div></div>

您的状态应该是

代码

.state('media', {
  url: '/media',
  views: {
    '': {
      templateUrl: '../js/media/baseTemplate.html',
      controller: 'ParentController as parentCtrl'
    },
    'left@media': {
      templateUrl: '../js/media/media.tmpl.html',
      controller: 'MediaController as mediaCtrl'
    },
    'right@media': {
      templateUrl: '../js/media/media.tmpl.html',
      controller: 'MediaController as mediaCtrl'
    }
  }
})

我最终通过创建一个服务来标识每个控制器的实例,该服务基本上充当一个全局计数器。在控制器实例化时,它调用服务并返回其当前索引。服务在每次调用时递增一个私有变量。这就是服务最终的样子:

(function() {
  angular.module('screenIdentifier', [])
    .factory('screenIdentifier', screenIdentifier);

      screenIdentifier.$inject = [];

      function screenIdentifier() {
      var _currentIndex = 0;

      return {
        getCurrentIndex: getCurrentIndex,
        resetIndex: resetIndex,
        assignPosition: assignPosition
      };

      function assignPosition() {
        return _currentIndex += 1;
      }
   }
})();

通过了解每个控制器的索引,我可以正确识别视图的索引。

我读了你很多次的问题,但没有得到任何线索,实际上是你想要的..但是通过查看代码发现状态有问题..所以我添加了答案..你能在问题中详细说明你到底想要什么..你能详细说明问题是什么吗?如果对你有帮助,请进行投票。
(function() {
  angular.module('screenIdentifier', [])
    .factory('screenIdentifier', screenIdentifier);

      screenIdentifier.$inject = [];

      function screenIdentifier() {
      var _currentIndex = 0;

      return {
        getCurrentIndex: getCurrentIndex,
        resetIndex: resetIndex,
        assignPosition: assignPosition
      };

      function assignPosition() {
        return _currentIndex += 1;
      }
   }
})();