作为许多其他开发人员面临的常见场景 - 我们有一个基于 Symfony2 / TWIG 的成熟应用程序,并且一些 html.twig 模板因 jQuery 代码过多而难以维护。
抛弃 jQuery 并使用 Angular 怎么样?
假设我有一些关于 Angular 模块、控制器、服务和范围的基本知识,并且对 Symfony2/TWIG 有深入的了解,我的第一个问题是 -将变量从现有控制器/树枝模板传递到角度控制器的最佳方法是什么?
我不想通过单独的 JSON 调用和 Symfony2 中的单独控制器来加载作用域。只是想使用我在树枝中现有的变量。
一种方法是声明一些全局 js 变量:
<script>
var window.someVar = {{ twig_object | json_encode() }};
</script>
然后做类似的事情
<div ng-controller="myCtrl" ng-init="init()">
<div ng-model="someVar"> .... </div>
</div>
并在控制器中
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 上声明值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)