2016-03-15 42 views
0

我的$ stateProvider:

$stateProvider 
     .state('home', { 
      url: "/home", 
      views: { 
       "header": {templateUrl: "templates/header.html"}, 
       "footer": { 
        templateUrl : "templates/footer.html", 
        controllerAs : "footerCtrl", 
        controller : function($scope){ 
         footerCtrl($scope); 
        } 
       } 
      } 
     }) 

function footerCtrl($scope){ 
    console.log($scope); 
    $scope.var1 = "Fulvio"; 
    this.var2 = "Cosco"; 
} 

HTML模板:

<div> 
    {{var1}} 
    {{footerCtrl.var2}} 
</div> 

如果我嘗試NG-控制器= 「footerCtrl」 寫入到DIV沒有數據綁定和我得到一個錯誤,而如果我不寫它沒有錯誤,也沒有數據綁定。

回答

1

你的代碼更改爲:

function footerCtrl() { 
    this.var1 = "Fulvio"; 
    this.var2 = "Cosco"; 
    console.log(this); 
} 

// Declare the controller 
yourAngularModule.controller('footerCtrl', footerCtrl); 

$stateProvider 
    .state('home', { 
     url: "/home", 
     views: { 
      "header": {templateUrl: "templates/header.html"}, 
      "footer": { 
       templateUrl : "templates/footer.html", 
       controllerAs : "footer", // The controller alias 
       controller : "footerCtrl", 
      } 
     } 
    }) 

使用方法如下:

// templates/footer.html 
<div> 
    {{footer.var1}} 
    {{footer.var2}} 
</div> 

這樣你有一個真正的controllerAs語法。

+0

這是多麼愚蠢的我... ...哈哈,我忘了tu定義「yourAngularModule.controller('footerCtrl',footerCtrl);」 謝謝。 – Donovant

相關問題