以角度访问本地风帆变量

时间:2015-09-06 21:38:08

标签: angularjs sails.js

我将两个变量传递给我的视图。如何从角度控制器访问此变量?

Sails Controller:

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>

正如您所看到的,我正在尝试对特定的apiKey执行GET,这是一个变量。这个变量可以从EJS访问,但不是有角度的。我究竟做错了什么?公平地说,我从根本上不了解帆与角度有什么联系......

1 个答案:

答案 0 :(得分:6)

Sails不与Angular通信,就像那样简单。 Sails是前端不可知的。

您可以将locals变量呈现给模板,因为当您致电res.view()时会传递模板,但这基本上会设置<%= me.apiKey %>阻止。

你能做的是:

  • 使变量在该位置可用,并通过路径参数(查找ui-router)获取它们。
  • 通过浏览器的window对象传递它:

在你的模板中:

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

然后在Angular中你可以将它们恢复为:

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