0

我的角度UI路由器改變狀態/意見:參數傳遞到角UI模板路由器

$stateProvider 
     .state({ 
      name: 'home', 
      url: '/', 
      template: '<home-view></home-view>', 
     }) 

有沒有辦法通過綁定參數,在UI路由器<家視圖>?

E.g.

<home-view my-data="dataObject"> 

<home-view my-data="myService.getMyData()"> 

我的視圖控制器位於自己的文件與實際的模板&指令。

+0

爲什麼不通過視圖的「控制器」來傳遞它?這就是它的目的:) –

+0

嗯,我設法讓它與控制器函數和$ scope一起工作$ parent.myData。然而,它是否真的如此,以至於不能像使用指令和數據綁定一樣通過模板傳遞? – Janne

回答

1

到底同事的礦山幫助這個問題。解決方案使用解析來獲取數據,然後將其作爲路由器作用域變量傳遞給模板。重要的學習是在路由器中定義的控制器具有它自己的範圍,而不是「主視圖」的範圍。在我的家庭控制器中,可以通過$ scope.parent訪問路由器控制器。

.state({ 
    name: 'home', 
    url: '/', 
    resolve: { 
     cData: (MyService) => { 
      return MyService.getMyData() 
     } 
    }, 
    controller: function (cData) { 
     this.data = cData; 
    }, 
    controllerAs: 'ctrl', 
    template: '<home-view my-data="ctrl.data"></home-view>' 
}) 
0

您可以使用一個解析器

$stateProvider 
    .state({ 
     name: 'home', 
     controller : "MyController" 
     url: '/', 
     resolve: { 
      obj: function() { 
       return {foo:bar} 
      } 
     } 
     template: '<home-view></home-view>', 
}) 

// then in your controller 
angular.module('app').controller('MyController', function(obj) { 
    this.myObj = obj; 
});