我将搜索结果直接嵌入到 HTML 页面中以节省往返时间。目前我执行以下操作:
<script>
var embeddedResults = { /* rendered by server */ };
var app = angular.module("MyApp", []);
app.controller("MyController", ["$scope", function($scope) {
$scope.results = embeddedResults;
// ...
}]);
</script>
这样做的正确方法是什么?另外:这种方式是否允许我将 embeddedResults
变量放在页面的最后,即即使在 Controller 定义之后?
最佳答案
方法 1 - 使用 $window 全局
<script>
var embeddedResults = { /* rendered by server */ };
var app = angular.module("MyApp", []);
app.controller("MyController", ["$scope", "$window", function($scope, $window) {
$scope.results = $window.embeddedResults; // using $window will enable you to mock it in tests
// ...
}]);
</script>
方法 2 - 常量/值
<script>
var app = angular.module("MyApp", []);
app.constant('embeddedResults', { /* rendered by server */ }); // can also be value
app.controller("MyController", ["$scope", "embeddedResults", function($scope, embeddedResults) {
$scope.results = embeddedResults;
// ...
}]);
</script>
关于javascript - AngularJS:将 HTML 中嵌入的 JSON 传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31660399/