gpt4 book ai didi

angularjs - 将变量从 Symfony2 传递到 Angular 范围的最佳方法

转载 作者:行者123 更新时间:2023-12-04 13:32:00 25 4
gpt4 key购买 nike

作为许多其他开发人员面临的常见情况 - 我们有一个基于 Symfony2/TWIG 的成熟应用程序,并且一些 html.twig 模板因 jQuery 代码而过多且难以维护。
扔掉 jQuery 并使用 Angular 怎么样?
如果我对 Angular 模块、 Controller 、服务和范围有一些基础知识,以及对 Symfony2/TWIG 的深入了解,我的第一个问题是 - 将变量从我现有的 Controller / Twig 模板传递到 Angular Controller 的最佳方法是什么?

我不想通过单独的 JSON 调用和 Symfony2 中的单独 Controller 来加载范围。只想使用我在 Twig 中的现有变量。

一种方法是声明一些全局 js 变量:

<script>
var window.someVar = {{ twig_object | json_encode() }};
</script>

然后做某事
<div ng-controller="myCtrl" ng-init="init()">
<div ng-model="someVar"> .... </div>
</div>

并在 Controller 中
app.controller('myCtrl', ['$scope', function($scope) {
$scope.init = function () {
if (window['someVar']) {
$scope['someVar'] = window['someVar'];
}
};

但这对我来说似乎太丑了(3个步骤)
是否可以至少简化或以其他方式完成?

最佳答案

你可以直接在 ng-init 中声明变量,所以:

<div ng-controller="myCtrl" ng-init="myModel.someVar='{{ twig_object | json_encode() }}';">

我更习惯于 ASP.Net MVC 中的 Razor,但我认为 Symfony2 也适用同样的原则。

还要记住双点规则,您不希望直接在 $scope 上声明值。

关于angularjs - 将变量从 Symfony2 传递到 Angular 范围的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28507870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com