2

我想在 DOM 中播种我的 javascript 所需的数据,因为我想避免不必要地调用服务器来获取这些数据

通常我会使用数据属性在 dom 中添加该数据,例如

<div data-record="{id: 1, name: 'name'}">

然后使用 jquery 我会做类似的事情:

var record = $ele.data('record');

由于这在 Angular 中是一种不好的做法,我发现我可以这样做:

<div ng-init="record={id: 1, name: 'name'}">
    <div ng-controller="Ctrl">

然后在我的控制器中:

function Ctrl($scope) {
    $scope.record; //is available automatically with the data added in ng-init

这是在 Angular 中执行此操作的正确方法吗?有更好的办法吗?(除了做一个http请求)

谢谢

4

1 回答 1

2

没关系。请记住通过 HTML 转义运行生成的 JSON 以避免 XSS 和其他问题,例如在 PHP 中:

<?php
$record = array('id' => 1, 'name' => 'name');
?>
<div ng-init="<?php echo htmlspecialchars(json_encode($record)); ?>"></div>
于 2013-04-30T09:23:52.547 回答