在转发器范围上设置值

时间:2013-10-11 13:19:44

标签: javascript angularjs

我在转发器范围内设置了一个输入,以便用户可以修改该值并查看该行上该值的计算结果 - 目的是获得类似行为的电子表格。

我想知道自动填充输入框的最佳方法是什么,以便在模型正确更新时将字段设置为某个值。我设置了一个试图将数字4插入值属性的小提琴:

http://jsfiddle.net/BVRzh/

这是模板:

<div ng-app>
  <ol ng-controller="TestCtrl">
    <li ng-repeat="a in arr">
      <input type="text" ng-model="testVal" value="4"></input>
      <span>Value: {{testVal}}, Times {{a}}: {{testVal * a}}</span>
    </li>
  </ol>
</div>

这是javascript:

function TestCtrl($scope) {
  $scope.arr = [1, 2, 3, 4];
}

有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:2)

ngInit非常有用:

<input type="text" ng-model="testVal" ng-init="testVal = a">

示例:http://jsfiddle.net/BVRzh/3/

如果我理解正确,这是您可以使用ngInit的唯一情况。来自文档的引文:

  

唯一适当使用ngInit来对别名的特殊属性进行别名处理   ngRepeat,如演示文件中所示。除了这种情况,你应该   使用控制器而不是ngInit来初始化作用域上的值。