角度js中的双向数据绑定

时间:2016-09-14 08:33:52

标签: angularjs asp.net-mvc-4

我是角度js的新手。我很困惑angularjs中的双向数据绑定是什么。假设在我的mvc4应用程序中,我将模型与视图绑定,用户更改了与模型类属性绑定的文本框的值。

单击更新按钮后,模型将以更改的值传递给控制器​​。然后将值传递给数据库以更新数据库。即模型正在使用新值进行更新。

在我的angularjs应用程序中,我还使用模型绑定了相同的文本框。要更新模型,用户会为文本框和模型更改添加新值。新模型通过web api控制器传递以更新数据库。

我的问题是:这两种类型的绑定机制有什么区别。在这两种情况下,视图和模型都会更新。那么angularjs中的2路绑定是什么。请帮我清除这个概念。

3 个答案:

答案 0 :(得分:1)

AngularJS中的双向绑定是视图模型之间的同步(无需刷新页面或单击按钮) 。模型中的任何更改都会反映在视图中,并且视图中的任何更改都会反映在模型上。因此,这种双向绑定方式可确保您的视图和模型始终更新。控制器也可以与视图分开并专注于模型。

这是你在AngularJS中使用双向绑定的方法:

<div ng-app="myApp" ng-controller="myCtrl">
    Name: <input ng-model="name">
    <h1>{{name}}</h1>
</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.name = "HelloWorld";
});
</script>

MVC使用ASP.NET模型绑定器。它将HTML页面中的值映射到模型。当MVC收到HTTP请求时,它会将其路由到控制器的特定操作方法。它根据路由数据中的内容确定要运行的操作方法,然后将HTTP请求中的值绑定到该操作方法的参数。 AngularJS以不同方式处理此问题,因为使用<div>标记在ng-controller中指定了控制器。此外,您不需要返回视图,模型会自动与控制器中关联的视图同步(无需返回)。

您可以在此处找到有关ASP.NET模型绑定的更多信息:https://docs.asp.net/en/latest/mvc/models/model-binding.html

答案 1 :(得分:1)

双向DataBinding 始终使模型和视图保持同步,即模型中的更改会更新视图,视图中的更改会更新模型。

  • 绑定表达式会在模型更改时更新视图。
  • ng-model指令在视图更改时更新模型。

答案 2 :(得分:0)

  

AngularJs中的数据绑定有两种方式:一种是使用Expression,另一种是使用ngModel。   示例:<div> Your Name is <input type="text" ng-model="name" /> My name is {{name}} </div>

     

这里ng-model =“name”表示我们已经使用ng-model指令将name定义为angular变量,该指令将textbox的值设置为name变量并显示{{name}}表达式。   这是AngularJS的力量