也许这不是一个问这个问题的好地方,但我会尽量让它尽可能客观和可回答。
我一直在使用 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
使用 Angular 指令。我发现可能怀疑的一个是:<a href="" ng-click="archive()">archive</a>
.
当 Jeffrey Zeldman 编写使用 Web 标准进行设计时,将标记 (HTML)、表示 (CSS) 和交互 (JS) 分离到不同的文件中以实现可维护性已成为最佳实践。
我的问题是,Angular 如何不违反这一点?我真的很喜欢它,并且发现它非常强大,但是将点击事件绑定到a
标记中的类似元素与编写这种 pre-web-standards 代码的痕迹之间有什么区别:
<a href='#' onClick='showAlert()'>Click here</a>
<script>
var showAlert = function(){
alert('hey');
}
</script>
除了个人使用框架的经验外,有用的答案可能还参考文档。