Javascript ng模型和ng值之间有什么区别/不兼容?
据我所知,ng模型为分配模型的特定元素设置值。 假设ng值与ng模型有何不同?根据,ngValue采用角度表达式,其值将绑定到输入元素的value属性 因此,当您使用ng value=hard时,它被解释为一个表达式,并且该值绑定到$scope.hard,这可能是未定义的。 ngValue对于计算表达式很有用-在设置硬编码值时,它比value没有优势。但是,如果要使用ngValue硬编码值,则必须将其包含在: ng value='hard' ng模型旨在放在表单元素中,并具有双向数据绑定$scope->view和view->$scope,例如Javascript ng模型和ng值之间有什么区别/不兼容?,javascript,angularjs,angularjs-directive,angularjs-ng-model,angularjs-ng-value,Javascript,Angularjs,Angularjs Directive,Angularjs Ng Model,Angularjs Ng Value,据我所知,ng模型为分配模型的特定元素设置值。 假设ng值与ng模型有何不同?根据,ngValue采用角度表达式,其值将绑定到输入元素的value属性 因此,当您使用ng value=hard时,它被解释为一个表达式,并且该值绑定到$scope.hard,这可能是未定义的。 ngValue对于计算表达式很有用-在设置硬编码值时,它比value没有优势。但是,如果要使用ngValue硬编码值,则必须将其包含在: ng value='hard' ng模型旨在放在表单元素中,并具有双向数据绑定$sco
或者,您可以说ng模型指令将HTML控件的值input、select、textarea绑定到应用程序数据。它与ng模型一起工作;对于Radio和selects,它是选择该项时设置为ng模型的值。将其用作元素的“value”属性的替代,该属性将始终向关联的ng模型存储字符串值 在单选按钮的上下文中,它允许您使用非字符串值。例如,如果您有单选按钮“Yes”和“No”或具有值“true”和“false”的等效按钮-如果您使用“value”,则存储在ng模型中的值将成为字符串。如果使用“ng value”,它们将保持布尔值 但是,在select元素的上下文中,请注意ng值仍将始终被视为字符串。要为select设置非字符串值,请使用ngOptions。简单说明 ng模型 用于变量的双向绑定,可以在作用域上使用,也可以在html上使用。 其中$modelValuevalue位于实际范围内,而$viewValue值显示在视图上。 若您在表单中提到了name属性,那个么angular会在内部为它创建验证属性,比如$error、$valid、$invalid等等。 例如 或 。。。 输入字段中ng值的一个好用法是,如果您想绑定到一个变量,但基于另一个变量的值。例如:
<h1>The code is {{model.code}}.</h1>
<p>Set the new code: <input type="text" ng-bind="model.code" /></p>
新代码将被更新,但代码将保持不变。文档明确指出,在与ng模型进行双向绑定时,不应使用ng值 从文档中: ngValue 将给定表达式绑定到元素的值 当输入元素不使用ngModel时,它还可用于实现给定表达式与输入元素(如input[text]或textarea)的单向绑定 -
相反,从控制器初始化值:我在寻找ng模型和ng值之间的差异。请注意,“ng值”确实比硬编码元素属性“值”有优势,因为您可以指定非字符串类型。例如,“true”和“false”将作为布尔值而不是字符串存储到模型中。此外,ngValue是单向绑定,ngModel是双向绑定。文档中并没有这样说。它说不要在文本或文本区域同时使用ng值和ng模型。对于单选,选中,选项,可以一起使用。即使是单选按钮,ng value指令绑定的变量的更改也不会更新ng model指令绑定的变量。ng值仅在用户单击或选择该单选按钮时更新其绑定变量。但这是出于设计。如果单选按钮的基础值发生更改,则应使用户的原始选择无效,而不是神奇地为他们选择它。试想一下在存款和存款之间转移的单选按钮。如果用户选择了存款以及UI如何将其更改为取款,这将是一个严重的问题。事实上,ng model指令忽略了AngularJS框架对ng value指令绑定的变量所做的更改。ng model指令仅对用户输入作出反应。
<input
[ng-value="string"]>
...
</input>
<select ng-model="selected">
<option ng-value="option.value" ng-repeat="option in options">
{{option.name}}
</option>
</select>
<h1>The code is {{model.code}}.</h1>
<p>Set the new code: <input type="text" ng-bind="model.code" /></p>
<input type="text" ng-value="model.code" ng-bind="model.theNewCode" />