角度传递参数从一个控制器到另一个控制器

时间:2015-10-01 10:29:23

标签: angularjs

我是角色的新手,试图学习语言。

获得以下代码:http://plnkr.co/edit/fuVb0mzhmDCKr1xKp7Rn?p=preview

有一个标签:

Error: [$injector:unpr] Unknown provider: myServiceProvider <- myService <- MyController

我希望能够从面板中访问所选标签。如何将参数发送到选项卡控制器?

2 个答案:

答案 0 :(得分:2)

创建一个将设置值并将其返回的服务:

&foo as &'static Fn()

然后将其注入您的控制器:

Uri

然后从file://

设置值
.service('shared', function() {

  var myValue;

  return {
    setValue: function(value) {
      myValue = value;
    },
    getValue: function() {
      return myValue;
    }
  }
});

.controller('Ctrl1', ['shared', function(shared)...... .controller('Ctrl2', ['shared', function(shared)...... 中,您只需检索值:

Ctrl1

答案 1 :(得分:1)

您可以创建服务或工厂,将其注入OwnerClass,在TabsCtrl中保存该服务中的currentTab状态。在页面控制器中注入相同的服务,如ng-click

JobsCtrl

更新您的app.factory('MyService',function(){ var currentTab ; return { setCurrentTab : function(tab){ currentTab = tab; }, getCurrentTab : function(tab){ return currentTab; } }; }); ,如下所示

TabsCtrl

function TabsCtrl($scope, $location, MyService) { // removing other code for brevity $scope.selectedTab = $scope.tabs[0]; // saving the default tab state MyService.setCurrentTab($scope.tabs[0]); $scope.setSelectedTab = function(tab) { $scope.selectedTab = tab; // saving currentTab state on every click MyService.setCurrentTab(tab); } } 中,注入相同的JobsCtrl并检索缓存的标签状态,如下所示

MyService

这是一个更新的Plunker,其中包含上述更改。