我正在开发一个在前端使用大量javascript的SF2应用程序.
SF2为我提供了一个很好的方法来构建一个漂亮的REST应用程序,使用doctrine管理我的数据库,使用twig进行模板等等,但我想使用Angularjs.
我知道angularjs SF2是2个不同的框架,有不同的方法,但我想知道这项工作的最佳方法是什么.
它甚至值得吗?
如果是,您认为更清洁,最有效的解决方案是什么?
也许使用php代替twig模板使用angularjs花括号?
如何为角度JS使用自定义分隔符?我想从{{ var }}语法改为[[ var ]].
有人能告诉我一个关于如何使用Angular实现这个的完整示例吗?
Angular.JS和Jekyll都使用{{和}}标记表达式的开头和结尾.因此,如果您同时使用两者,则存在冲突,Jekyll通常会消除或混淆Angular表达式.
一个解决方法是告诉Angular使用不同的符号$interpolateProvider,例如:
var app = angular.module('app', [],
function($interpolateProvider) {
$interpolateProvider.startSymbol('[[{').endSymbol('}]]');
});
Run Code Online (Sandbox Code Playgroud)
还有一种方法可以告诉Jekyll使用不同的开始和结束符号吗?
更新:为什么?只是试图找到一种侵入性较小的方法来解决冲突,因为我的项目通常包含比Jekyll标记更多的Angular标记.
我正在玩Angularjs和Slim,但试图弄清楚如何提出更简洁的语法。
我想要做:
td {{content.name}}
td {{content.body}}
td {{content.owner}}
Run Code Online (Sandbox Code Playgroud)
但这给了我一个错误。最可能是因为{用于对HTML属性进行分组。我不得不将其更改为:
td
| {{content.name}}
td
| {{content.body}}
td
| {{content.owner}}
Run Code Online (Sandbox Code Playgroud)
有没有更清洁的方法可以做到这一点?
我有一个使用Symfony2表单组件构建的简单编辑表单.这意味着这个表单将在我的php控制器中填充模型数据.
但是每个表单输入都与ng-model指令相关联.现在这是我面临的问题:
当在编辑表单上输入时,输入没有值(因为它们没有在角度控制器中初始化),但是如果我用firebug检查它们将使用适当的数据设置value属性(因为数据是在php中设置的)控制器).
有没有办法以某种方式初始化角度模型?
我在localhost:5000上用烧瓶运行它.如果我只是用浏览器打开html文件,它可以工作,但它不适用于烧瓶.我有一个名为"arr"的数组,其中有4个数字位于我的控制器内.我想打印出每个数字,但ng-repeat不会这样做.真正有趣的关键是ng-repeat将重复等于数组中项目数的次数,这样就可以了,但它无法在ng-repeat =中打印变量{{number}} arr中的数字".这是我的代码:
<html ng-app='numberApp'>
<head>
<meta charset="utf-8">
<title>Cool</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.min.js"></script>
<script>
var numberApp = angular.module('numberApp', []);
numberApp.controller('numberCtrl', function($scope, $http){
$scope.arr = [2, 4, 5, 6];
});
</script>
</head>
<body ng-controller="numberCtrl">
<table>
<tr>
<th>First</th>
<th>Second</th>
<th>Third</th>
</tr>
<tr ng-repeat="number in arr">
<td> {{ 'start' }} </td>
<td> {{ number }} </td>
<td> {{ 'end' }} </td>
</tr>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是浏览器中显示的内容:
First Second Third
start end
start end
start end
start end
Run Code Online (Sandbox Code Playgroud)
它不会打印出{{number}}.万分感谢任何能告诉我为什么会这样的人!
当你使用时{{}},苗条看第一个{并认为它是一个属性.
如何禁用{苗条的关键角色.使用{{ }}将被解释为角度,而不是苗条的属性?
(PS我正在使用slim-railsgem,所以解决方案可能特定于rails,但谁知道呢?)