获取有效点击的值

时间:2018-02-22 02:50:34

标签: angularjs angular-ui-router

我正在尝试分享两个标签的视图内容和控制器。我希望当我单击选项卡时,在我的控制器中,我可以选择选择哪个选项卡,如果是“仪表板”选项卡或“朋友”选项卡。

我该怎么做?

//same controller fot the tabs
.controller('DashCtrl', function($scope) {
  console.log("dash")
})

.state('tab', {
    url: "/tab",
    abstract: true,
    templateUrl: "tabs.html"
  })


   //same template and controller
  .state('tab.dash', {
    url: '/dash',
    views: {
      'tab-dash': {
        templateUrl: 'tab-dash.html',
        controller: 'DashCtrl'
      }
    }
  })

  .state('tab.friends', {
    url: '/friends',
    views: {
      'tab-friends': {
        templateUrl: 'tab-dash.html',
        controller: 'DashCtrl'
      }
    }
  })

http://plnkr.co/edit/XmPNTx27gOvnpalrvVMj?p=preview

1 个答案:

答案 0 :(得分:0)

您的代码很好,您可以通过控制器获取选项卡的名称,该名称在app.config中定义为状态。

.state('tab.dash', {
  url: '/dash',
  views: {
    'tab-dash': {
      templateUrl: 'tab-dash.html',
      controller: 'DashCtrl'
    }
  }
})

.state('tab.friends', {
  url: '/friends',
  views: {
    'tab-friends': {
      templateUrl: 'tab-friends.html',
      controller: 'FriendsCtrl'
    }
  }
})

你唯一想念的是为朋友选项卡注入查看控制器,你应该将其定义为顶级代码,你的控制器也会向你发送选项卡的名称,当您选择选项卡时,控制器将控制台名称。

.controller('DashCtrl', function($scope) {
   console.log("DashCtrl")
})

.controller('FriendsCtrl', function($scope) {
   console.log("FriendsCtrl")
})

你的代码很好我的朋友,只是简单的错误。