也许这不是一个好的地方问这个问题,但我会尽量使它尽可能客观和尽可能的回答。角度和语义标记/分离问题
我一直在玩Angular.js,真的很喜欢它,但我有一个关于它的哲学的问题。这里有一个来自Angular网站的控制器代码片段。
<div ng-controller="TodoCtrl">
<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>
这基本上是HTML
与洒角指令,我觉得可能susupect的一个是这样的:<a href="" ng-click="archive()">archive</a>
。
当Jeffrey Zeldman写道Designing With Web Standards时,为了可维护性,将标记(HTML),表示(CSS)和交互(JS)分隔到不同文件中成为最佳实践。
我的问题是,Angular如何不违反这个规定?我真的很喜欢它,并且发现它非常强大,但是将点击事件绑定到a
元素(如标记中)与编写Web标准代码之前的这种痕迹之间有什么区别:
<a href='#' onClick='showAlert()'>Click here</a>
<script>
var showAlert = function(){
alert('hey');
}
</script>
除了个人使用框架的经验之外,有用的答案可能指的是文档。
首先想到的是尝试使用jQuery和语义标记编写状态保存单页应用程序,比较大量的代码,花费的时间和头疼到使用角度编写的相同应用程序...测试?在角度上更简单....代码量和代码碎片量远低于角度。模块化和便于维护或增强...在角度上更简单。权衡贸易是值得一些关注的结合IMO – charlietfl
你是对的,这不是这个问题的正确的地方。这似乎更像是一个概念性问题,属于http://programmers.stackexchange.com/ – qodeninja