Angular - 使用$ scope中的数字添加输入值

时间:2015-06-24 21:26:00

标签: javascript angularjs angularjs-ng-model angularjs-ng-value angularjs-bindings

我有以下代码:

<div data-ng-controller="MainController">
        <input class="amount" type="text" name="" value="" />
        <input class="result" type="text" name="" value=""/>
</div>

我想从$ scope获取一个数值,并将其添加到用户在输入中使用“amount”类输入的数字,并在输入中使用“result”类显示结果。因此,基本上,变量在 MainController 函数中定义如下:

$scope.cost = 100;

我有点困惑的是,最好的方法是做什么,我看到有 ng-value ng-model 指令,但我可以使用我很难理解哪个是适合这个应用程序的(以及如何正确使用它们)。

2 个答案:

答案 0 :(得分:3)

似乎你的应用程序要求输入,他们将提交值或将其存储在DB中的某个位置。所以ng-model(双向绑定)将适合您的应用程序,这将更新model&amp;的值。 view两者。

<强>标记

<div data-ng-controller="MainController">
    <input class="amount" type="text" ng-model="cost"/>
</div>

上面的字段会预先填充为100,当您更新时,它也会更改$scope.cost值及其在任何地方显示的值。

不要考虑ng-value这只是一种绑定方式。您可以使用仅ng-value="cost"更新input的值属性的cost来分配值,但是当您从html更新输入时,您将永远不会将ng-value范围变量中反映的更改作为{ {1}}用于单向绑定。您认为只有在想要显示值时才应使用ng-value

答案 1 :(得分:1)

你应该使用ng-model

  • ng-value :它是一个用于评估表达式的指令,该值绑定到用于计算表达式的$ scope
  • ng-model :有助于双向数据绑定,视图 - &gt;控制器,反之亦然,而且它的指令绑定HTML控件的值