【问题标题】:access local sails variable in angular以角度访问局部风帆变量
【发布时间】:2015-09-07 07:51:34
【问题描述】:

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

帆控制器:

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 访问,但不能从角度访问。我究竟做错了什么?公平地说,我根本不明白风帆如何与角度通信......

【问题讨论】:

  • 你找到比检查答案更好的方法了吗?如果你请张贴。谢谢。

标签: angularjs sails.js


【解决方案1】:

Sails 不与 Angular 通信,就这么简单。 Sails 与前端无关。

您可以将您的 locals 变量呈现给您的模板,因为当您调用 res.view() 时有一个模板传递,但这基本上设置了您的 &lt;%= me.apiKey %&gt; 块。

你可以做的是:

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

在您的模板中:

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

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

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

【讨论】:

  • 这是将风帆当地人传递给 Angular 的唯一方法吗?
  • 我不认为这是唯一的方法,但我确信没有一次性的解决方案,Sails 与前端无关,这意味着您可以使用任何工具为您的API,不仅仅是角度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多