我将两个变量传递给我的视图。如何从角度控制器访问此变量?
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访问,但不是有角度的。我究竟做错了什么?公平地说,我从根本上不了解帆与角度有什么联系......
答案 0 :(得分:6)
Sails不与Angular通信,就像那样简单。 Sails是前端不可知的。
您可以将locals
变量呈现给模板,因为当您致电res.view()
时会传递模板,但这基本上会设置<%= me.apiKey %>
阻止。
你能做的是:
在你的模板中:
<script>
var apiKey = <%= me.apiKey %>;
</script>
然后在Angular中你可以将它们恢复为:
app.controller('DashboardController', ['$scope', '$window',
function ($scope, $window) {
$scope.apiKey = $window.apiKey;
}
]);