我对棱角世界非常陌生,我主要使用的是.NET MVC架构,其中模型和Controller这样的实体之间有一个清晰的界限。
我认为以下几点是很清楚的:
它们是两个独立的文件和两种不同的类型。任何人都不可能混淆asp.net视图和asp.net控制器
然而,在角度世界(这显然是MVC架构)中,控制器看起来就像下面的链接所描述的那样:
https://scotch.io/tutorials/making-skinny-angularjs-controllers
对我来说,按照.NET标准,这是模型和控制器的混合体,因为它不仅携带数据(类似于模型),而且还携带函数**(就像Controller )*。不仅如此,模型实际上是控制器的一部分。
我的问题是,如果一个角度上的模型看起来像上面的链接中描述的模型,那么模型本身是什么样的呢?
发布于 2015-12-09 05:20:39
模型
在AngularJS中,术语模型是指存储在作用域内的数据,以便在视图中使用。它可以是硬编码的值/对象,也可以是存储在作用域中的服务调用上接收到的响应。
上面的图像清楚地显示了模型是如何在视图上使用的。AngularJS还支持双向数据绑定.也就是说,更新视图(它绑定到特定的模型)也会更新模型值。
控制器
控制器的目的是将变量和功能公开给表达式和指令。
如上所述,控制器与作用域相关联,并且可以在与各自控制器关联的视图上访问在作用域中定义的所有模型。控制器可用于定义业务逻辑和处理事件等。
发布于 2015-12-09 05:07:56
模型($scope)和视图(HTML)之间是分离的。
是的,在$scope上有一些方法是从视图中调用的,但它们本质上是控制器操作--它们是从控制器函数的闭包中执行的。
app.controller('ctrl', function($scope) {
$scope.data = 'hello';
$scope.onclick = function(arg) {
$scope.data = 'hello world!';
}
});
Microsoft ASPNET与角MVC非常相似:
MVC Controller = ngController
ViewData/ViewBag = $scope
Controller DI = Angular DI in controller function
Razor View Engine = ngRepeat, ngShow, ngModel, etc
RenderActions = Data-driven service-injected directives
RenderPartials = Read-only directives (data retrieved by another controller)
Click triggers controller action = ngClick triggers $scope handler in controller's function closure
Model Data Binding = AngularJS Data Binding
ModelState validation = ngModel validation
HTTP handlers/modules = HTTP interceptors
这让我怀疑ASPNET是否激发了角..。
注意: VIewData和$scope是相似的,但是当然,$scopes通过$scope继承解决$scope属性,但是在ASPNET中,子ViewData不继承父ViewData。嗯..。微软,这将是一个有用的特性:)
发布于 2015-12-09 04:58:31
范围是角应用中非常重要的组成部分。作用域是表示应用程序的“模型”的对象。它包含存储通过模板呈现给用户的数据的字段,以及当用户执行某些操作(例如单击按钮)时可以调用的函数。对于mOre Go For,请使用链接https://docs.angularjs.org/api/ng/directive/ngModel
https://stackoverflow.com/questions/34170930
复制相似问题