2016-09-14 206 views
0

我是非常新的角js。我很困惑angularjs中的2路數據綁定是什麼。假設在我的mvc4應用程序中,我將模型與視圖綁定,並且用戶更改綁定了模型類屬性的文本框的值。角js中的雙向數據綁定

單擊更新按鈕後,將模型傳遞給控制器​​並更改了值。然後將該值傳遞到數據庫以更新數據庫。即模型正在用新值更新。

在我的angularjs應用程序中,我還綁定了與模型相同的文本框。要更新模型用戶將新值賦予文本框和模型更改。新模型通過web api控制器傳遞以更新數據庫。

我的問題是:這兩種類型的綁定機制有什麼區別。在這兩種情況下,視圖和模型被更新。那麼angularjs中的2路綁定是什麼?請幫我清楚這個概念。

回答

0

兩路電源在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的處理方式不同,因爲使用ng-controller標籤在<div>中指定了控制器。另外,您不需要返回視圖,模型會自動與控制器中關聯的視圖同步(無需返回)。

您可以找到ASP.NET模型的一些詳細信息,結合這裏:https://docs.asp.net/en/latest/mvc/models/model-binding.html

+0

Thanks.It現在清楚了。但是當我們在mvc4中綁定模型時,當我們改變與模型的視圖綁定時,模型也會發生變化。 – amitabha

+0

@amitabha我已經添加了ASP.NET模型聯編程序的鏈接,希望它有幫助。 –

+0

感謝您的明確解釋。 – amitabha

0

AngularJs中的數據綁定有兩種方法:一種是使用Expression,另一種使用ngModel。 實施例:<div> Your Name is <input type="text" ng-model="name" /> My name is {{name}} </div>

這裏NG-模型=「名」意味着我們已經與將設置的文本框的值來命名變量,並用{{名稱}}表達被顯示NG-模型指令角度變量定義的名稱。 這是AngularJS

+0

我明白這一點。但按照文檔「雙向數據綁定是一個非常簡單的概念,它提供了模型和視圖圖層之間的同步,模型更改傳播到視圖,視圖更改立即反射回模型這使模型成爲維護應用程序狀態的「單一真相源」。同樣的事情也適用於mvc4。所以我的問題是什麼區別? – amitabha

1

雙向數據綁定保持在所有的時候,模型和視圖同步,也就是在模型變化更新視圖並且視圖中的更改會更新模型。

  • 綁定表達式在模型更改時更新視圖。
  • ng-model指令在視圖更改時更新模型。