我喜欢在我的Multiple Pages Laravel应用程序中使用AngularJs。
由于我使用Laravel Blade模板引擎,我似乎不喜欢将Angular标签包含在我的刀片模板集群中的想法
实施例
<div ng-controller="TodoController">
<span>@{{remaining()}} of @{{todos.length}} remaining</span>
[ <a href="" ng-click="archive()">archive</a> ]
<ul class="unstyled">
<li ng-repeat="todo in todos">
<input type="checkbox" ng-model="todo.done">
<span class="done-@{{todo.done}}">@{{todo.text}}</span>
</li>
</ul>
<form ng-submit="addTodo()">
<input type="text" ng-model="todoText" size="30"
placeholder="add new todo here">
<input class="btn-primary" type="submit" value="add">
</form>
</div>
注意:@{{todo.done}}
是一种告诉Blade忽略大括号的方法
有没有办法可以使用AngularJS而不包含像ng-controller,ng-repeat这样的标签:
我不想使用标签的原因包括: 1.将来我可能决定使用另一个JS框架,如Emberjs或任何其他更好的框架,所以,我必须找到我的刀片文件中的所有ng-tags删除它们
提前感谢您的专家回复
答案 0 :(得分:1)
您可能能够避免使用ng指令。然而,这是一个非常糟糕的练习,并且它可能会被淘汰多年。
您只需要限制自己使用控制器,然后使用单个run
调用来填充rootScope。然后,您只需手动引导应用程序:
var module = angular.module( 'myApp', [ ] ).run( function ( $rootScope ) {
$rootScope.myVariable = 'hello world';
} );
angular.element( document ).ready( function ( ) {
angular.bootstrap( document, [ 'myApp' ] );
} );
现在,为什么你不应该这样做:
答案 1 :(得分:0)
作为最简单的解决方案之一。您可以更改角度
的开始和结束符号var myApp = angular.module('myApp', [], function($interpolateProvider) {
$interpolateProvider.startSymbol('[[');
$interpolateProvider.endSymbol(']]');
});
然后,您的模板将如下所示:
[[ todo.text ]]
了解更多信息ng-docs