设置角度绑定的根对象

时间:2015-10-05 17:21:26

标签: angularjs data-binding angularjs-scope

有没有办法将根对象绑定到html标记并让该标记的子节点绑定到该对象的属性?与ng-repeat的工作方式相同,但此处讨论的对象不是集合。假设我有一个具有以下属性的对象

$scope.obj = {
   a : 1,
   b : 2
};

在我的标记中,我有一个div,里面有两个输入元素

<div>
 <input type="text"></input>
 <input type="text"></input>
</div>

有没有办法指定根对象并以类似的方式绑定其属性

<div rootObject="object">
 <input type="text" ng-model="a"></input>
 <input type="text" ng-model="b"></input>
</div>

现在两个输入元素分别绑定到obj.aobj.b

我有一个复杂的对象,其中嵌套了不同的对象,以及不同类型的对象。因此ng-repeat="(key,value) in obj"语法不够。

2 个答案:

答案 0 :(得分:0)

当然,您仍然可以使用ng-repeat:

<div rootObject="object">
    <input ng-repeat="(key, value) in obj" type="text" ng-model="object[key]" />
</div>

答案 1 :(得分:0)

使用ng-repeat的这种语法将其绑定到对象中的键/值对

ng-repeat="(key, value) in obj"

&#13;
&#13;
angular.module('myApp', []).
controller('myCtrl', [
  '$scope',
  function($scope) {
    $scope.obj = {
      a: 1,
      b: 2
    };
  }
]);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp">
  <div ng-controller="myCtrl">
    <div ng-repeat="(key, value) in obj">
      <span>{{key}}</span>
      <input type="text" value="{{value}}" />
    </div>
  </div>
</div>
&#13;
&#13;
&#13;