我有一个关于设计的问题。我刚刚浏览了 Visual Studio 的 ToDo 模板的代码,用于使用 BreezejS 和 AngularJS 构建 SPA。
有一个 todo.model.js 文件可以进行各种初始化。一件有趣的事情是,它通过一些附加功能 (addToDo) 扩展了 TodoList 实体。
这样做有什么好处,而不是在 todo.controller 中使用 addToDo 函数并将其添加到 $scope ?
我有一个关于设计的问题。我刚刚浏览了 Visual Studio 的 ToDo 模板的代码,用于使用 BreezejS 和 AngularJS 构建 SPA。
有一个 todo.model.js 文件可以进行各种初始化。一件有趣的事情是,它通过一些附加功能 (addToDo) 扩展了 TodoList 实体。
这样做有什么好处,而不是在 todo.controller 中使用 addToDo 函数并将其添加到 $scope ?
您可以为将所有TodoList
级别持久性操作移出 TodoList 并移入其他组件提供一个很好的案例。控制器是潜在的候选人。
这些操作存在的主要原因TodoList
是......因为原始 ASP.NET 模板的作者将它们放在了那里!
“社区模板”的设计目标之一是让所有“TodoList”应用程序尽可能地相似。通过保持设计不变,我们让读者更容易比较不同框架的效果:Knockout、Breeze、Backbone、Ember。如果他们中的任何一个重新定位这些操作,您将不知道该更改是由目标框架强加的,还是仅仅是实施者的偏好。我们希望摆脱自我,让您专注于所涉及的技术。
不要将这些模板视为福音。在某些方面,它们是不现实的;我无法想象每次单个对象的单个属性更改时都会保存。
向他们学习。以健康的怀疑态度看待他们。一直问这样的问题。拿对你有意义的东西。丢弃其余的。
我相信这只是让实体为列表中的项目处理自己的保存/删除功能。控制器似乎只处理添加新列表。我不确定除了保持控制器清洁之外还有什么好处。