javascript - 在 dom 中为 Angular 播种数据的正确方法是什么

标签 javascript angularjs

我想在 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">

然后在我的 Controller 中:

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

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

谢谢

最佳答案

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

<?php
$record = array('id' => 1, 'name' => 'name');
?>
<div ng-init="<?php echo htmlspecialchars(json_encode($record)); ?>"></div>

关于javascript - 在 dom 中为 Angular 播种数据的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16293734/

相关文章:

javascript - 滚动到 div,防止第二次点击

javascript - 我想每次点击 requestFrameAnimation 时都开始一个新的动画

javascript - 带预先输入功能的 Angular 可编辑网格

javascript - 使用 typescript 嵌套 Angular Directive(指令)

javascript - Angular.js 和 Node.js - 通过 Controller 将输入变量传递到 server.js

angularjs - 将字符串直接传递给 Angular 指令?

javascript - 类型错误 : $ is not a function in AJAX and Wordpress

javascript - 根据日期时间字段填充文本框。 ASP.NET C# JS

javascript - 如何检测浏览器何时放置保存的密码?

angularjs - AngularJS 中的范围变量数据没有改变