2015-09-06 83 views
3

我傳遞給我的觀點兩個變量。我怎樣才能從角度控制器訪問這個變量?訪問本地風帆角度變化

帆控制器:

return res.view('dashboard', { 
    me: { 
     id: user.id, 
     apiKey: user.connection.apiKey 
    } 
}); 

角控制器:

angular.module('DashboardModule').controller('DashboardController', function($scope, $http) { 
    $http.get("/api/" + encodeURIComponent($scope.me.apiKey)); 
    .success(function(response) {$scope.records = response.records;}); 
    } 
}); 

HTML:

<h5>Api Key:</h5> 
    <p ng-model="me.apiKey"><%= me.apiKey %></p> 

    <ul> 
    <li ng-repeat="x in records"> 
     {{ x.guiLoginName }} 
    </li> 
    </ul> 

正如你Ç看到我正在嘗試執行GET到特定的apiKey這是一個變量。這個變量可以從EJS訪問,但不是角度。我究竟做錯了什麼?公平起見,我基本上不明白帆如何與角度交流...

+0

你發現了一個比檢查的答案更好的方式?如果你請發佈。謝謝。 –

回答

6

帆不與Angular溝通,就像那樣簡單。帆是前端不可知論的。

您可以將locals變量呈現給您的模板,因爲當您撥打res.view()時有一個模板通過,但基本上會設置您的<%= me.apiKey %>塊。

你可以做的是:

  • 使位置可用的變量,並通過路由PARAMS讓他們(查找UI路由器)。

在模板:

  • 通過瀏覽器的窗口對象傳遞

    <script> 
        var apiKey = <%= me.apiKey %>; 
    </script> 
    

    ,然後在角度,你可以恢復它們爲:

    app.controller('DashboardController', ['$scope', '$window', 
        function ($scope, $window) { 
         $scope.apiKey = $window.apiKey; 
        } 
    ]); 
    
  • +0

    這是將帆船當地人通過角度的唯一途徑嗎? –

    +0

    我不認爲這是唯一的方法,但我確信沒有一次性的解決方案,Sails是前端不可知論者,這意味着您可以使用任何工具爲API創建接口,而不僅僅是角度。 – fixmycode