ui路由器。从对象/功能获取状态名称

尤金·科斯特里科夫(Eugene Kostrikov)

我想知道,有什么方法可以通过对象或函数引用状态吗?

只是为了使视图与状态定义脱钩。例如,如果我更改州名,则不必在我的视图中的任何地方更改它。

拉迪姆·科勒

可以在这里找到一种解决方案,如下所述,它可以作为工作中的活塞

在此示例中,我们将为某些实体(例如员工)定义状态,例如:

  1. 列表视图和
  2. 详细视图。

让我们使用一些变量entityName来扮演解耦命名的角色:

var entityName = "employee";

$stateProvider
    .state(entityName, {
        url: '/' + entityName,
        views: {
          ...
      }})

    .state(entityName + '.detail', {
        url: '/{{Id}}',
        views: {
          ...
      }});

从列表导航到详细信息视图(我们可以看到,没有使用明确的“雇员”名称)

<a ui-sref="{{detailLink(item)}}" >{{item.Name}}</a>

接下来,我们必须定义detailLink(item)我们将在controller此处直接进行操作,但可以ListModel改为某些实例,封装更多的操作(分页,排序),包括detailLink

controller:['$scope','$state',
  function ( $scope , $state){ 

      $scope.detailLink = function (item){

          // here we get the employee in run-time
          var currentState = $state.current.name; 
          var sref = currentState + '.detail({Id:' + item.Id + '})';
          return sref;
      };
}],

就是这样。甚至可能更加复杂...完整的示例代码(以下定义为状态)可以在此处找到并运行

.config(['$stateProvider',
function( $stateProvider) {

    var entityName = "employee";

    $stateProvider
      .state(entityName, {
        url: '/' + entityName,
        views: {
          body: {
          template: '<div>' +
                    '  <h2>List View</h2> ' +
                    '  <ul ng-repeat="item in items"> ' +
                    '   <li><a ui-sref="{{detailLink(item)}}" >{{item.Name}}</a>' +
                    '  </li></ul>' +
                    '  <h2>Detail View</h2> ' +
                    '  <div ui-view="detail"></div>' +
                    '</div>',
          controller:['$scope','$state',
            function ( $scope , $state){ 

              $scope.items = [{Name : "Abc", Id : 0}, {Name : "Def", Id : 1}];

              $scope.detailLink = function (item){

                 var currentState = $state.current.name;
                 return currentState + '.detail({Id:' + item.Id + '})';
              };
          }],
        }
      }})
      .state(entityName + '.detail', {
        url: '/{{Id}}',
        views: {
          detail: {
          template: '<div>' +
                    '  <label>{{item.Name}} ' +
                    '  <input ng-model="item.Name"}}" type="text" />' +
                    '  <div>current state name: <i>{{state.name}}<i></div> ' +
                    '</div>',
          controller:['$scope','$stateParams','$state',
            function ( $scope , $stateParams , $state){ 
              $scope.state = $state.current
              $scope.item = $scope.items[$stateParams.Id];
          }],
        }
      }});

}])

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AngularJS ui路由器,如何获取抽象partent状态的resolve对象中的目标状态的名称?

来自分类Dev

UI路由器-每次路由更改时都运行功能-状态名称在何处?

来自分类Dev

使用ui路由器公开当前状态名称

来自分类Dev

驱逐/移动状态路由器之外的UI路由器的解析功能定义

来自分类Dev

从Angular UI路由器中的数组对象创建状态

来自分类Dev

如何获取当前ui路由器状态的完整网址?

来自分类Dev

无法获取ui路由器状态参数

来自分类Dev

如何获取Angularjs UI路由器状态列表?

来自分类Dev

无法获取ui路由器状态参数

来自分类Dev

角度ui路由器状态问题

来自分类Dev

AngularJS UI路由器状态更改

来自分类Dev

UI路由器状态未加载

来自分类Dev

Android如何获取路由器名称?

来自分类Dev

Android如何获取路由器名称?

来自分类Dev

Angular UI路由器,如何从控制器获取当前状态的祖先列表?

来自分类Dev

AngularJS UI路由器阻止对非状态路由的访问

来自分类Dev

AngularJS UI路由器共享嵌套的路由/状态

来自分类Dev

状态和视图中指定的AngularJS UI路由器参数对象之间的区别

来自分类Dev

使用Angular.js UI路由器获取状态错误

来自分类Dev

如何从其他状态的角度 ui 路由器获取数据

来自分类Dev

尝试通过将状态对象放入变量来压缩我的ui路由器状态定义。不起作用

来自分类Dev

如何从控制台获取ui路由器的$ state对象?

来自分类Dev

铁路由器:获取当前控制器的名称

来自分类Dev

Angular ui路由器-在状态之间共享视图

来自分类Dev

角度UI路由器,嵌套状态不显示

来自分类Dev

角ui路由器抽象状态$ scope未删除

来自分类Dev

UI路由器未加载预期的子状态

来自分类Dev

具有父状态的ui路由器模式窗口

来自分类Dev

如何使用Angular UI路由器设置默认状态

Related 相关文章

  1. 1

    AngularJS ui路由器,如何获取抽象partent状态的resolve对象中的目标状态的名称?

  2. 2

    UI路由器-每次路由更改时都运行功能-状态名称在何处?

  3. 3

    使用ui路由器公开当前状态名称

  4. 4

    驱逐/移动状态路由器之外的UI路由器的解析功能定义

  5. 5

    从Angular UI路由器中的数组对象创建状态

  6. 6

    如何获取当前ui路由器状态的完整网址?

  7. 7

    无法获取ui路由器状态参数

  8. 8

    如何获取Angularjs UI路由器状态列表?

  9. 9

    无法获取ui路由器状态参数

  10. 10

    角度ui路由器状态问题

  11. 11

    AngularJS UI路由器状态更改

  12. 12

    UI路由器状态未加载

  13. 13

    Android如何获取路由器名称?

  14. 14

    Android如何获取路由器名称?

  15. 15

    Angular UI路由器,如何从控制器获取当前状态的祖先列表?

  16. 16

    AngularJS UI路由器阻止对非状态路由的访问

  17. 17

    AngularJS UI路由器共享嵌套的路由/状态

  18. 18

    状态和视图中指定的AngularJS UI路由器参数对象之间的区别

  19. 19

    使用Angular.js UI路由器获取状态错误

  20. 20

    如何从其他状态的角度 ui 路由器获取数据

  21. 21

    尝试通过将状态对象放入变量来压缩我的ui路由器状态定义。不起作用

  22. 22

    如何从控制台获取ui路由器的$ state对象?

  23. 23

    铁路由器:获取当前控制器的名称

  24. 24

    Angular ui路由器-在状态之间共享视图

  25. 25

    角度UI路由器,嵌套状态不显示

  26. 26

    角ui路由器抽象状态$ scope未删除

  27. 27

    UI路由器未加载预期的子状态

  28. 28

    具有父状态的ui路由器模式窗口

  29. 29

    如何使用Angular UI路由器设置默认状态

热门标签

归档