2015-09-06 90 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