Trả lời

23

Nó hoạt động cùng với ng-model; cho radio và chọn, nó là giá trị được đặt thành ng-model khi mục đó được chọn. Sử dụng nó như là một thay thế cho thuộc tính 'value' của phần tử, nó sẽ luôn luôn lưu một giá trị chuỗi cho mô hình ng liên kết.

Trong ngữ cảnh của nút radio, nó cho phép bạn sử dụng các giá trị không phải chuỗi. Ví dụ: nếu bạn có nút radio 'Có' và 'Không' (hoặc tương đương) với các giá trị 'true' và 'false' - nếu bạn sử dụng 'value', các giá trị được lưu trữ trong mô hình ng của bạn sẽ trở thành chuỗi. Nếu bạn sử dụng 'ng-value', chúng sẽ vẫn là boolean.

Trong ngữ cảnh của phần tử đã chọn, tuy nhiên, hãy lưu ý rằng giá trị ng sẽ luôn được coi là chuỗi. Để đặt giá trị không phải chuỗi cho lựa chọn, hãy sử dụng ngOptions.

+0

Ví dụ: xem http://stackoverflow.com/a/18446612/446030 – JcT

2

Theo https://docs.angularjs.org/api/ng/directive/ngValue, ngValue có một "biểu thức góc, có giá trị sẽ được ràng buộc với thuộc tính giá trị của phần tử đầu vào".

Vì vậy, khi bạn sử dụng ng-value = "hard", nó được hiểu là một biểu thức và giá trị được liên kết với $ scope.hard (có thể là không xác định). ngValue rất hữu ích cho việc đánh giá các biểu thức - nó không có lợi thế hơn giá trị để thiết lập các giá trị mã hóa cứng. Tuy nhiên, nếu bạn muốn mã hóa cứng một giá trị với ngValue, bạn phải đặt nó bên trong '':

ng-value = " 'cứng'"

ng mô hình được dự định sẽ được đặt bên trong các phần tử biểu mẫu và có ràng buộc dữ liệu hai chiều ($ scope -> view and view -> $ scope) ví dụ <input ng-model="val"/>.

hoặc bạn có thể nói Chỉ thị ng-model liên kết giá trị của điều khiển HTML (đầu vào, chọn, văn bản) với dữ liệu ứng dụng.

+1

tôi đang tìm kiếm sự khác biệt giữa * ng-model * và * ng-value * –

+0

để tôi cập nhật câu trả lời –

+0

Xin lưu ý rằng 'ng-value' không có lợi thế hơn mã hóa cứng với thuộc tính phần tử 'value' , trong đó bạn có thể chỉ định các loại không phải chuỗi. Ví dụ: 'true' và 'false' sẽ được lưu vào mô hình dưới dạng boolean, chứ không phải là chuỗi. – JcT

13

Simple Mô tả

ng mô hình

  1. Được sử dụng cho hai cách ràng buộc của biến có thể có sẵn trên phạm vi cũng như trên html.
  2. $modelValue (giá trị nằm trong phạm vi thực tế) & $viewValue (giá trị được hiển thị trên chế độ xem).
  3. Nếu bạn được đề cập trên mẫu với tên thuộc tính sau đó góc nội bộ tạo ra các thuộc tính xác nhận cho nó như $ lỗi, $ hợp lệ, không hợp lệ, vv $

Ví dụ.

<input type="text/checkbox/radio/number/tel/email/url" ng-model="test"/> 

ng-giá trị

  1. được sử dụng để gán giá trị cho giá trị ng-model tương ứng như input, select & textarea (tương tự có thể được thực hiện bằng cách sử dụng ng-init)
  2. ng-value không cung cấp tốt ràng buộc nếu bạn đang thiết lập giá trị ng-model thông qua ajax trong khi viết value thuộc tính không hỗ trợ nó
  3. Về cơ bản có nghĩa là để sử dụng cho radio & option thẻ trong khi tạo select tùy chọn tự động.
  4. Chỉ có thể có giá trị string, nó không hỗ trợ giá trị đối tượng.

HTML

<input 
    [ng-value="string"]> 
... 
</input> 

HOẶC

<select ng-model="selected"> 
    <option ng-value="option.value" ng-repeat="option in options"> 
    {{option.name}} 
    </option> 
</select> 

...

3

Một sử dụng tốt cho ng-value trong input lĩnh vực là nếu bạn muốn liên kết với một biến , nhưng dựa trên giá trị của biến khác. Ví dụ:

<h1>The code is {{model.code}}.</h1> 
<p>Set the new code: <input type="text" ng-bind="model.code" /></p> 

Khi người dùng trong input, giá trị trong tiêu đề sẽ được cập nhật. Nếu bạn không muốn điều này, bạn có thể sửa đổi để:

<input type="text" ng-value="model.code" ng-bind="model.theNewCode" /> 

theNewCode sẽ được cập nhật, nhưng code sẽ vẫn giữ nguyên.

Các vấn đề liên quan